本文已参与「新人创作礼」活动,一起开启掘金创作之路。
CentOS系统下,docker安装卸载方法,包括常规方式安装及脚本一键安装,以及修改docker默认存储路径的三种方式。
一、docker安装与启动
1.安装docker的几种方式
1)安装最新版本docker
① 先卸载旧版本的docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
② 指定Docker下载源(可选,适用于首次安装)
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
③ 安装Docker(默认安装最新版本)
yum install -y docker-ce docker-ce-cli containerd.io
④ 验证是否安装成功
docker version
2)安装指定版本的docker
yum list docker-ce --showduplicates | sort -r # 查看所有可用版本
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io # 安装指定版本
3)通过脚本一键安装docker
脚本内容如下:
#!/bin/bash
echo "set default docker install repo"
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
echo "install docker ..."
yum install -y docker-ce docker-ce-cli containerd.io
systemctl start docker
systemctl status docker
2.启动docker
systemctl start docker # 启动服务
systemctl status docker # 查看状态
systemctl stop docker # 停止服务
systemctl restart docker # 重启服务
二、创建第一个docker容器
1.创建容器
按照国际惯例,先运行一个hello-world的容器
docker run hello-world
# 如果网络等一切正常的话,会出现如下提示,表示容器已经创建成功
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:18a657d0cc1c7d0678a3fbea8b7eb4918bba25968d3e1b0adebfa71caddbc346
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
2.查看容器
docker ps -a # 查看所有容器
# 创建成功,容器列表中就会有hello-world的容器,但名字不是hello-world,因为我们在运行容器时并未指定名称
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a07f1a8ea1a4 hello-world "/hello" 21 seconds ago Exited (0) 20 seconds ago adoring_chatterjee
三、卸载docker
1.常规方式卸载
① 停止docker服务
systemctl stop docker
② 搜索已经安装的docker安装包
yum list installed | grep docker
rpm -qa | grep docker
yum -y remove docker-ce.x86_64
yum -y remove docker-ce-cli.x86_64
yum -y remove containerd.io.x86_64
③ 移除所有相关安装包
yum -y remove contained.io.x86_64
④ 删除docker镜像及相关文件夹
rm -rf /var/lib/docker
2.脚本卸载
所谓的使用脚本安装和卸载,通俗理解就是把上述多个操作步骤的命令放在一个脚本中批量执行,内容如下:
#!/bin/bash
systemctl stop docker
yum -y remove docker-ce.x86_64
yum -y remove docker-ce-cli.x86_64
yum -y remove containerd.io.x86_64
rm -rf /var/lib/docker
rm -rf /etc/docker/daemon.json
四、修改docker默认存储路径
docker安装完成后,默认存储路径为/var/lib/docker。创建容器后,每个容器的数据卷容量上限与/var/lib/docker所在的挂载的磁盘大小有关。例如下图所示:挂载的磁盘大小为50GB,则docker容器数据卷上限就是50GB,如果有多个容器,则这些容器共享50GB的容量,而且同时也与挂载磁盘下的其他目录共享使用。那么如果运行的容器数量较多,或是遇到需要存储大量数据如gitlab这类容器,50G显然就有些捉襟见肘。此时可以通过修改docker存储路径的方式扩容容器的容量上限。特别提一句,docker存储路径最好尽早修改,这样可以避免后期因磁盘写满导致的各种容器运行异常问题。
本文提供三种方式修改docker存储路径,分别为:
方式一:修改docker配置文件
编辑docker配置文件
vi /usr/lib/systemd/system/docker.service
使用"--graph"或"-g"参数指定存储位置
ExecStart=/usr/bin/dockerd --graph /home/docker_home
修改完成后重新加载配置文件并重启docker服务
# reload配置文件
systemctl daemon-reload
# 重启docker
systemctl restart docker.service
方式二:创建daemon.json文件
docker1.12或以上版本,可以创建或修改daemon.json文件来指定存储位置。docker查看版本命令“docker version”
vi /etc/docker/daemon.json
在最后添加graph字段,定义docker目录
{
"registry-mirrors":[
"http://registry.docker-cn.com",
"http://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com",
"http://cr.console.aliyun.com/",
"https://8wb4g36l.mirror.aliyuncs.com"
],
"graph": "/home/docker_home"
}
修改完成后同样需要重新加载配置文件、重启docker服务
systemctl daemon-reload
systemctl restart docker.service
方式三:创建软链接(推荐)
前两种方式适用于首次安装docker后没有pull过镜像、创建过容器。即使修改了存储路径,因为没有镜像和容器,所以也不会产生任何影响。
创建软链接的方式,适用于已经创建过容器、并且容器已经产生数据的情况。这种方式可以避免对镜像及现有容器数据造成破坏,以及更改存储路径后找不到数据的情况。具体步骤如下:
① 查看docker路径
默认情况下Docker的存放位置为:/var/lib/docker,也可以通过如下命令查看docker存储路径
docker info | grep "Docker Root Dir"
② 停掉docker服务
systemctl stop docker
③ 移动docker目录
mv /var/lib/docker /home/docker_home
③ 创建软链接
- /home/docker_home为源文件目录,也就是新设置的docker存储目录
- /var/lib/docker为软链接目标目录,与此目录建立链接后,相当于原来的docker配置保持不变,但真正的存储目录是其背后所指向的/home/docker_home
ln -s /home/docker_home /var/lib/docker
④ 启动docker服务
systemctl start docker
修改完成后,我们可以通过以下命令查看docker的存储目录:
docker info | grep "Root Dir"
# 修改成功会返回以下内容:
# Docker Root Dir: /home/docker_home
查看/var/lib/目录,docker目录是一个软链接,指向/home/docker_home,配置正确。
小结
以上就是docker安装卸载过程,包含了: 常规方式安装、安装指定版本docker、docker卸载、运行第一个容器;
另外介绍了修改默认存储路径的小技巧,共三种方式,选择任意一种即可,分别为:1.修改docker配置文件;2.创建daemon.json文件;3.创建软链接;