Docker基础教程
程序员文章站
2022-06-04 08:10:30
...
一、Docker简介
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
二、Centos7安装docker
- 卸载旧的docker
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
- 下载所需要的依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
- 设置仓库(两种仓库设置方式)
- 国内仓库设置方式(推荐,下载镜像速度快一些)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 国外仓库设置方式(下载镜像速度超慢)
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 安装 Docker
- 默认安装最新版本的docker
yum install docker-ce docker-ce-cli containerd.io -y
- 安装指定版本的docker
列出并排序存储库中可用的版本
yum list docker-ce --showduplicates | sort -r
安装指定版本
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io -y
- 启动docker
systemctl start docker
三、Docker镜像
- 列出本地主机上的镜像
docker images
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签、版本
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小
- 镜像下载
docker pull 镜像名称 eg:docker pull centos
- 镜像查找
docker search 镜像名称 eg:docker search mysql
NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否 docker 官方发布
stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED: 自动构建。
- 镜像操作命令
docker run 镜像名称 #运行docker镜像
docker rmi 镜像名称 #删除docker镜像
-
构建镜像
5.1创建Dockerfile文件 eg:
FROM centos:6.7
MAINTAINER xxx
RUN /bin/echo 'root:123456' |chpasswd
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D
FROM: 指定使用哪个镜像源
MAINTAINER: 维护者信息
RUN: 执行的命令
EXPOSE: 说明哪些端口被允许,但是没有启动,需要映射
CMD: 类似于RUN,是需要执行的命令,但RUN是docker build时执行,CMD是docker run时执行的命令
docker build -t test/centos:6.9 .
-t : 指定要创建的镜像名称
. : Dockerfile所在的目录,也可指定绝对路径
四、Docker容器
Docker容器使用基础命令
- 运行应用程序
docker run -itd -P 镜像名称 --name 容器名称 容器描述 /bin/bash
docker run -itd -p 8080:80 镜像名称 容器描述 /bin/bash
docker run -tid -p 3000:3000/udp 镜像名称 容器描述 /bin/bash
参数说明:
-p: 指定映射到主机的端口,8080是本机的端口,80是容器的端口
-i: 允许交互式操作。
-t: 终端。
-d: 在后台运行
/bin/bash:命令,在容器中进行交互式shell
-P:将容器内部使用的网络端口随机映射到主机上。
–name:自己定义容器名称
默认的映射端口是TCP的端口,udp需要在后面添加
- 进入容器
docker attach -it 容器ID #退出容器终端后容器停止运行
docker exec -it 容器ID /bin/bash #退出容器终端后容器不停止
- 导入导出容器
docker export 容器ID >容器名称
eg:docker export 容器ID >centos.tar
cat 导出的容器名称 | docker import - 导入的容器名称
eg: cat centos.tar | docker import - test/centos:v1
- 查看运行的容器
docker ps #查看所有运行的容器
docker port 容器ID #查看指定容器的某个确定端口映射到宿主机的端口号
- 删除容器
docker rm -f 容器ID
注意:删除容器时,容器必须是停止状态,否则会报错
- 启动、停止、重启容器
docker start、stop、restart 容器ID
- 查看容器内部的标准输出。(日志)
docker logs [ID或者名字]
- 查看容器内部运行的进程
docker top [ID或者名字]
- 容器之间通信
新建网络:
docker network create -d bridge test-net
测试连接:
终端1创建容器test1
docker run -tid --name test1 --network test-net centos /bin/bash
终端2创建容器test2
docker run -tid --name test2 --network test-net centos /bin/bash
在容器test1中ping容器test2
docker exec -ti test1 /bin/bash ping test2
Docker基础就学习完成了,下一篇介绍Docker安装各种服务!!!
推荐阅读
-
docker-compose一键部署redis一主二从三哨兵模式(含密码,数据持久化)
-
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
-
Google Container Engine上申请和使用Docker容器的教程
-
cenos7中利用docker安装mysql的步骤教程
-
ASP基础教程之ASP AdRotator 组件的使用
-
在CentOS 7 上使用Docker 运行.NetCore项目
-
Docker下搭建一个JAVA Tomcat运行环境的方法
-
浅谈docker Dockerfile 指令 VOLUME 介绍
-
Docker中容器数据卷(Data Volume)和数据管理详解
-
详解Centos7 下建立 Docker 桥接网络