文章目录
- CentOS 安装 Docker Engine
- 安装方式
- 安装 Docker
- 启动 Docker
- 设置 Docker
- 升级 Docker
- 卸载 Docker
- 阿里云镜像加速
- 使用 DNF 命令安装最新 Docker
CentOS 安装 Docker Engine
Docker 官方文档 CentOS 安装 Docker Engine
安装方式
官方提供了四种安装方式, 前三种是 CentOS 的, 第四种是 Linux 的
- 设置Docker的存储库并从中进行安装,以便于安装和升级任务。这是推荐的方法。
- 可以下载RPM包并手动安装,也可以完全手动管理升级。这在无法访问互联网的系统上安装Docker等情况下很有用。其实还得下一些其他依赖, 可能还是需要网络
- 官方说明
- 在 仓库 根据 CentOS 版本, 通过 wget 下载 docker-ce 的最新版 rpm 包, 如 https://download.docker.com/linux/centos/9/x86_64/stable/Packages/docker-ce-24.0.5-1.el9.x86_64.rpm, 然后执行
yum install docker-ce-24.0.5-1.el9.x86_64.rpm
- 会报缺少相关的依赖 rpm, 根据缺少的依赖清单, 把其他的 rpm 也下载下来
- 然后一个命令把所有 rpm 打包安装,
yum install docker-ce-xxx docker-cd-cli-xxx docker-ce-rootless-xxx container.io-xxx
- 在测试和开发环境中,可以使用自动化的便利脚本来安装Docker, 不推荐
- 官方说明
- 二进制文件安装 Docker
- 官方说明 1
- 官方说明 2
- 官方说明 3
- 官方说明 4
- 在 仓库 通过 wget 下载 docker 的二进制包, 如
https://download.docker.com/linux/static/stable/x86_64/docker-24.0.5.tgz
- 拷贝
docker.service
和docker.socket
到/etc/systemd/system
安装 Docker
卸载旧版。卸载docker时,存储在 /var/lib/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
设置镜像仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 官网镜像地址, 慢的话可以换成其他的
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum-config-manager --add-repo http://mirrors.tencent.com/docker-ce/linux/centos/docker-ce.repo
安装 Docker 引擎
# 直接安装最新版
# docker-ce 是社区版, ee 是企业版, 加 -y 所有需要输入 y 确认的都会自动输入
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动 Docker
systemctl start docker
# 查看版本
docker version
# 测试程序, 自动下载并运行测试容器, 成功运行后会自动打印消息并退出
docker run hello-world
# 先检查本地是否有镜像, 没有则从仓库查找, 找到则下载, 然后运行
# Hello from Docker!
# This message shows that your installation appears to be working correctly.
设置 Docker
# 设置开机启动
# 许多现代Linux发行版使用systemd来管理系统启动时哪些服务启动。在Debian和Ubuntu上,Docker服务默认在启动时启动。要在使用systemd的其他Linux发行版上在启动时自动启动Docker和containerd,请运行以下命令
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
# 禁用开机启动
sudo systemctl disable docker.service
sudo systemctl disable containerd.service
升级 Docker
按照安装流程选一个更新的重新安装即可
卸载 Docker
yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
# 删除资源
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
阿里云镜像加速
相比于配置镜像加速, 我更推荐 save:scp:load
大法, 具体参考 这篇文章
登录阿里云控制台, 找到 [容器镜像服务 - 镜像工具 - 镜像加速器]
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://whvuvvy4.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
使用 DNF 命令安装最新 Docker
这次是在 UCloud 云的 CentOS 8.3 上尝试安装 Docker, 但是因为 EOL 的原因, 出现了各种奇怪的问题, 网上的资料又是乱七八糟, 参差不齐的质量, 尝试多次全失败, 索性重装了和 CentOS 同源的 Rocky 9.1 操作系统, 这下舒服了, 所有问题全没了. 这里也推荐对 Linux 一知半解的小伙伴直接上 Rocky
搭建 Docker
# 添加 Docker 软件源, 阿里源也可以
dnf config-manager --add-repo=http://mirrors.tencent.com/docker-ce/linux/centos/docker-ce.repo
# 查看已添加的 Docker 软件源
dnf list docker-ce
# 安装 Docker
dnf install -y docker-ce --nobest
# 启动 Docker
systemctl start docker
# 检查安装结果
docker info
执行结果如下, 本次安装的 Docker 版本为 24.0.2, 且配置了阿里云的镜像加速器
[root][/var/lib/docker] docker info
Client: Docker Engine - Community
Version: 24.0.2
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.10.5
Path: /usr/libexec/docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v2.18.1
Path: /usr/libexec/docker/cli-plugins/docker-compose
Server:
Containers: 2
Running: 0
Paused: 0
Stopped: 2
Images: 1
Server Version: 24.0.2
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Using metacopy: false
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: systemd
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc io.containerd.runc.v2
Default Runtime: runc
Init Binary: docker-init
containerd version: 3dce8eb055cbb6872793272b4f20ed16117344f8
runc version: v1.1.7-0-g860f061
init version: de40ad0
Security Options:
seccomp
Profile: builtin
cgroupns
Kernel Version: 5.14.0-162.6.1.el9_1.x86_64
Operating System: Rocky Linux 9.1 (Blue Onyx)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.728GiB
Name: 10-60-187-9
ID: 5fe80e47-b574-435a-9e8d-438a22bee3e9
Docker Root Dir: /var/lib/docker
Debug Mode: false
Experimental: false
Insecure Registries:
127.0.0.0/8
Registry Mirrors:
https://whvuvvy4.mirror.aliyuncs.com/
Live Restore Enabled: false