1. 安装docker
所需的安装文件:
containerd.io-1.2.6-3.3.el7.x86_64.rpm
docker-ce-19.03.9-3.el7.x86_64.rpm
docker-ce-cli-19.03.9-3.el7.x86_64.rpm
# 安装Docker Engine,cd 到你存放 Docker 软件包的路径
cd /home/centos7/software
# 开始安装,顺序不要弄错
# 遇到密码输入 root 密码
sudo yum -y install ./containerd.io-1.2.6-3.3.el7.x86_64.rpm
sudo yum -y install ./docker-ce-cli-19.03.9-3.el7.x86_64.rpm
sudo yum -y install ./docker-ce-19.03.9-3.el7.x86_64.rpm
1. 1 配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <'EOF'
{
"registry-mirrors": ["https://fvp17nw5.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
# 重启 docker
sudo systemctl restart docker
1.2 启动Docker
# 创建docker用户组,并将当前用户加入到docker用户组中
sudo groupadd docker #添加docker用户组
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
docker ps #测试docker命令是否可以使用sudo正常使用
# 启动Docker
sudo systemctl start docker
# 通过运行 hello-world 映像来验证是否正确安装了Docker Engine
docker run hello-world
# 此时显示没有这个镜像,会从网络上拉取这个镜像
# 此命令下载测试图像并在容器中运行它。容器运行时,它会打印参考消息并退出。
# 显示下面的内容,说明docker安装成功
1.3 配置Docker以在开机时启动
当前大多数Linux发行版(RHEL,CentOS,Fedora,Ubuntu 16.04和更高版本)用于
systemd
管理系统启动时启动的服务。在Ubuntu 14.10及更低版本中使用upstart
。
sudo systemctl enable docker
# Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
# 若要禁用此行为,请改用 disable :
sudo systemctl disable docker
1.4 卸载Docker
# 1.卸载Docker Engine,CLI和Containerd软件包:
sudo yum remove docker-ce docker-ce-cli containerd.io
# 2.主机上的映像,容器,卷或自定义配置文件不会自动删除。
# 删除所有图像,容器和卷:
sudo rm -rf /var/lib/docker
# 您必须手动删除所有已编辑的配置文件。
2. 使用docker
2.1 添加和删除镜像
# 添加 centos:7.3.1611 的镜像
docker pull centos:7.3.1611
# 显示现在存在的镜像
docker images
# 删除镜像使用 docker rm IMAGE_ID 命令:
# 注意:1.当通过该镜像创建的容器未被销毁时,镜像是无法被删除的。
# 2.一旦通过 ID 来删除镜像,它会先尝试删除所有指向该镜像的标签,然后在删除镜像本身。
docker ps -a # 查看所有的容器命令
docker rm -f 9a555db67049 # 删除有的容器
docker images # 显示现在存在的镜像
docker rmi c5d48e81b986 # 删除镜像
# 启动容器,以下命令使用 centos 镜像启动一个容器,参数为以命令行模式进入该容器:
docker run -it centos:7.3.1611 /bin/bash
2.2 启动和关闭容器
# 启动容器,以下命令使用 centos 镜像启动一个容器,参数为以命令行模式进入该容器:
docker run -it centos:7.3.1611 /bin/bash
参数说明:
-i: 交互式操作。
-t: 终端。
-d: 指定容器的运行模式为后台运行
centos:7.3.1611: centos:7.3.1611 的镜像。
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
# 要退出终端,直接输入 exit :
exit
# 使用 docker stop CONTAINER_ID 停止一个容器
docker stop 9a555db67049
# 查看所有的容器命令如下:
docker ps -a
# 删除容器使用 docker rm CONTAINER_ID 命令:
docker rm -f 1e560fca3906
# 使用 docker start CONTAINER_ID 启动一个已停止的容器:
docker start b750bbbcfd88
# 后台运行
# 在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。
docker run -itd centos:7.3.1611 ubuntu /bin/bash
2.3 进入和退出容器
在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:
docker attach
docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。
# attach 命令
# 下面演示了使用 docker attach 命令。
docker attach 1e560fca3906
# 如果从这个容器 exit 退出,会导致容器的停止。
#exec 命令
# 下面演示了使用 docker exec 命令。
docker exec -it 243c32535da7 /bin/bash
# 如果从这个容器 exit 退出,不会导致容器的停止。
2.4 导出和导入容器
导出容器:
如果要导出本地某个容器,可以使用 docker export 命令。
# 查看所有的容器命令如下:
docker ps -a
# 导出容器 9a555db67049 快照到本地文件 centos7.tar :
docker export 9a555db67049 > centos7.tar
# 这样将导出容器快照到本地文件。
导入容器快照:
可以使用 docker import 从容器快照文件中再导入为镜像,
# 将快照文件 centos7.tar 导入到镜像 test/centos7:v1:
docker import ./centos7.tar test/centos7:v1
# 此外,也可以通过指定 URL 或者某个目录来导入,例如:
docker import http://example.com/exampleimage.tgz example/imagerepo