centos7安装Docker
目录
一、从 Docker 官方仓库安装最新版 Docker
1. 卸载旧版本 Docker(如果已安装)
2. 安装必要的依赖包
3. 添加 Docker 官方仓库
4. 安装 Docker 最新版本
5. 启动 Docker 并设置开机自启
6. 验证安装
7. (可选)以非 root 用户运行 Docker
注意事项:
二、使用 .tgz 文件安装特定版本 Docker
1. 下载 Docker 二进制包
2. 解压 Docker 二进制包
3. 复制 Docker 二进制文件到系统路径
4. 创建 Docker 系统服务
(1)创建 systemd 服务文件
(2)重新加载 systemd 配置
5. 启动 Docker 并设置开机自启
6. 验证 Docker 功能
7. (可选)配置非 root 用户运行 Docker
8. 配置 Docker 存储驱动(可选)
可能遇到的问题
三、安装docker-compose
1. 下载Docker-Compose
2. 设置权限
编辑
3. 配置环境变量
在 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/binvi /etc/profile
# 添加内容: export PATH=$PATH:/usr/local/binsource /etc/profiledocker-compose -v