卸载旧版本以及残留文件
# 检查操作系统
cat /etc/*release*
# 检查是否安装了 docker
docker version
docker info
旧版本和历史版本的区别
旧版本(旧名字): docker
历史版本或新版本(新名字): docker-ce
# 卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 卸载历史版本/删除组件包或者叫依赖包
yum remove docker-ce \
docker-ce-cli \
containerd.io \
dockerbuildx-plugin \
docker-compose-plugin \
docker-ce-rootless-extras
docker 残留数据
# 数据存放位置
# 默认位置
ll /var/lib/docker
# 更改后的位置(因为可能数据过多将磁盘撑爆, 因此需要重新挂载目录)
ll /data/var/lib/docker
# 删除默认目录(一个是docker默认目录,一个是containerd默认目录)
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
# 如果修改过目录和json配置文件,还需执行
rm -rf /data/var/lib/docker
rm -rf /etc/docker/domaeon.json
安装
前置工作
# 查看yum源仓库地址
ll /etc/yum.repos.d
# 如果没有docker-ce仓库,则需添加
# 首先需安装 yum-utils 才能使用 yum-config-manager 命令
# yum install -y yum-utils
# 其次再执行
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 因为上面的这个源是国外的,会特别慢,因此需要配置国内源
# sed -i 's@//download.docker.com@//mirrors.ustc.edu.cn/docker-ce@g' /etc/yum.repos.d/docker-ce.repo
正式开始安装
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动 docker
# 配置加载
sudo systemctl daemon-reload
# 启动服务
sudo systemctl start docker
# 重启服务
sudo systemctl restart docker
# 开机启动
sudo systemctl enable docker
# 查看服务状态
sudo systemctl status docker
# 测试
docker version
docker info
docker run hello-world
关于 docker 镜像源和目录的修改
docker 镜像源修改
以下修改适用于 Ubuntu 16.04+ 、CentOs 7,在配置文件 /etc/docker/daemon.json 中加入
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
]
}
# 在添加前,需要创建 docker 目录
mkdir /etc/docker
# 其次编辑配置文件 daemon.json
vim daemon.json
# 改动了配置,还需要重新加载配置和服务
systemctl daemon-reload
systemctl restart docker
docker 目录修改
两种方案:
- 提前规划好 docker 目录
- 调整 docker 目录
# 假定要挂载到 /data 这个大的磁盘目录下
mkdir /data
mkdir -p /data/var/lib/docker
# 调整 daemon.json 配置文件, 更改data-root的路径
cd /etc/docker
vim daemon.json
# 添加以下 json
{
"data-root": "/data/var/lib/docker"
}
# 改动了配置,还需要重新加载配置和服务
systemctl daemon-reload
systemctl restart docker