目录
在 CentOS 7 上安装 Docker,可以选择直接从 Docker 的官方仓库安装,这样可以确保你获得的是最新的稳定版本,并且易于管理和更新。也可以基于一个特定的 .tgz 文件(例如 docker-28.1.1.tgz),这通常是 Docker 的早期版本或者非官方构建。下面我将首先介绍如何从 Docker 官方仓库安装最新版本的 Docker,然后解释如何使用 .tgz 文件安装。
一、从 Docker 官方仓库安装最新版 Docker
1. 卸载旧版本 Docker(如果已安装)
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2. 安装必要的依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3. 添加 Docker 官方仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4. 安装 Docker 最新版本
sudo yum install -y docker-ce docker-ce-cli containerd.io
5. 启动 Docker 并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
6. 验证安装
sudo docker --version
输出类似:
Docker version 20.10.x, build xxxxxxx
7. (可选)以非 root 用户运行 Docker
sudo usermod -aG docker $USER
然后重新登录或运行:
newgrp docker
注意事项:
- CentOS 7 兼容性:Docker 官方支持 CentOS 7,但未来新版本可能不再支持。
- 防火墙设置:如果启用了防火墙,可能需要开放相关端口。
二、使用 .tgz 文件安装特定版本 Docker
如果你有特定的需求需要安装一个特定的 .tgz 文件(例如 docker-28.1.1.tgz),你可以按照以下步骤操作:
1. 下载 Docker 二进制包
确保你已经下载了 docker-28.1.1.tgz
文件,并上传到 CentOS 7 服务器(或直接下载):
wget https://example.com/docker-28.1.1.tgz # 替换为实际的下载链接
(如果 docker-28.1.1.tgz
是本地文件,请先上传到服务器。)
2. 解压 Docker 二进制包
tar -xzvf docker-28.1.1.tgz -C /tmp
解压后,/tmp/docker/
目录下应该包含 dockerd
、docker
等可执行文件。
3. 复制 Docker 二进制文件到系统路径
sudo cp /tmp/docker/* /usr/bin/
验证是否安装成功:
docker --version
dockerd --version
应该输出类似:
Docker version 28.1.1, build xxxxxxx
4. 创建 Docker 系统服务
(1)创建 systemd 服务文件
sudo vi /etc/systemd/system/docker.service
写入以下内容:
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
(2)重新加载 systemd 配置
sudo systemctl daemon-reload
5. 启动 Docker 并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
检查 Docker 是否运行:
sudo systemctl status docker
如果正常,应该显示 active (running)
。
6. 验证 Docker 功能
sudo docker run hello-world
如果成功,会输出:
Hello from Docker!
This message shows that your installation appears to be working correctly.
7. (可选)配置非 root 用户运行 Docker
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker # 刷新用户组
测试非 root 用户运行:
docker ps
8. 配置 Docker 存储驱动(可选)
如果使用 devicemapper
或 overlay2
,可以修改 /etc/docker/daemon.json
:
sudo vi /etc/docker/daemon.json
写入(示例):
{
"storage-driver": "overlay2"
}
然后重启 Docker:
sudo systemctl restart docker
可能遇到的问题
- 依赖缺失
- 如果
dockerd
启动失败,可能需要安装依赖:sudo yum install -y libseccomp iptables
- 如果
- SELinux 冲突
- 临时禁用 SELinux:
sudo setenforce 0
- 或永久禁用(需修改
/etc/selinux/config
)。
- 临时禁用 SELinux:
- Firewall 阻止
- 放行 Docker 相关端口:
sudo firewall-cmd --permanent --add-port=2375/tcp sudo firewall-cmd --reload
- 放行 Docker 相关端口:
三、安装docker-compose
1. 下载Docker-Compose
去github官网搜索docker-compose:https://github.com/docker/compose/
将下载好的文件放入虚拟机中
2. 设置权限
需要将DockerCompose文件的名称修改一下,给予DockerCompose文件一个可执行的权限
# 改名
mv docker-compose-linux-aarch64 docker-compose
# 设置权限
chmod 777 docker-compose
3. 配置环境变量
方便后期操作,配置一个环境变量
将docker-compose文件移动到了/usr/local/bin , 修改了/etc/profile文件,给/usr/local/bin配置到了PATH中
mv docker-compose /usr/local/bin
vi /etc/profile
# 添加内容: export PATH=$PATH:/usr/local/bin
source /etc/profile
docker-compose -v