centos7安装Docker

目录

[一、从 Docker 官方仓库安装最新版 Docker](#一、从 Docker 官方仓库安装最新版 Docker)

[1. 卸载旧版本 Docker(如果已安装)](#1. 卸载旧版本 Docker(如果已安装))

[2. 安装必要的依赖包](#2. 安装必要的依赖包)

[3. 添加 Docker 官方仓库](#3. 添加 Docker 官方仓库)

[4. 安装 Docker 最新版本](#4. 安装 Docker 最新版本)

[5. 启动 Docker 并设置开机自启](#5. 启动 Docker 并设置开机自启)

[6. 验证安装](#6. 验证安装)

[7. (可选)以非 root 用户运行 Docker](#7. (可选)以非 root 用户运行 Docker)

注意事项:

[二、使用 .tgz 文件安装特定版本 Docker](#二、使用 .tgz 文件安装特定版本 Docker)

[1. 下载 Docker 二进制包](#1. 下载 Docker 二进制包)

[2. 解压 Docker 二进制包](#2. 解压 Docker 二进制包)

[3. 复制 Docker 二进制文件到系统路径](#3. 复制 Docker 二进制文件到系统路径)

[4. 创建 Docker 系统服务](#4. 创建 Docker 系统服务)

[(1)创建 systemd 服务文件](#(1)创建 systemd 服务文件)

[(2)重新加载 systemd 配置](#(2)重新加载 systemd 配置)

[5. 启动 Docker 并设置开机自启](#5. 启动 Docker 并设置开机自启)

[6. 验证 Docker 功能](#6. 验证 Docker 功能)

[7. (可选)配置非 root 用户运行 Docker](#7. (可选)配置非 root 用户运行 Docker)

[8. 配置 Docker 存储驱动(可选)](#8. 配置 Docker 存储驱动(可选))

可能遇到的问题

三、安装docker-compose

[1. 下载Docker-Compose](#1. 下载Docker-Compose)

[2. 设置权限](#2. 设置权限)

​编辑

[3. 配置环境变量](#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

注意事项:

  1. CentOS 7 兼容性:Docker 官方支持 CentOS 7,但未来新版本可能不再支持。
  2. 防火墙设置:如果启用了防火墙,可能需要开放相关端口。

二、使用 .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/ 目录下应该包含 dockerddocker 等可执行文件。


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 存储驱动(可选)

如果使用 devicemapperoverlay2,可以修改 /etc/docker/daemon.json

复制代码
sudo vi /etc/docker/daemon.json

写入(示例):

复制代码
{
  "storage-driver": "overlay2"
}

然后重启 Docker:

复制代码
sudo systemctl restart docker

可能遇到的问题

  1. 依赖缺失

    • 如果 dockerd 启动失败,可能需要安装依赖:

      复制代码
      sudo yum install -y libseccomp iptables
  2. SELinux 冲突

    • 临时禁用 SELinux:

      复制代码
      sudo setenforce 0
    • 或永久禁用(需修改 /etc/selinux/config)。

  3. Firewall 阻止

    • 放行 Docker 相关端口:

      复制代码
      sudo firewall-cmd --permanent --add-port=2375/tcp
      sudo firewall-cmd --reload

三、安装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
相关推荐
{⌐■_■}2 小时前
【Kubernetes】Ingress的理解,netstat命令使用,对比理解service和ingress
云原生·容器·kubernetes
焚膏油以继晷,恒兀兀以穷年3 小时前
Docker设置容器时间
运维·docker·容器
斯普信专业组6 小时前
Ceph、K8s、CSI、PVC、PV 深入详解
ceph·容器·kubernetes
Blessed_Li10 小时前
【dify+milvus避坑指南】将向量库milvus集成给dify作为知识库
docker·ai·llm·milvus·dify
岳来11 小时前
docker运行时目录/var/lib/docker 学习
学习·docker·容器运行时
draymond710712 小时前
Dockerfile详解
运维·docker·容器
在云端易逍遥13 小时前
nextjs项目部署阿里云实践
docker·next.js
ID_云泽15 小时前
多架构镜像整合全攻略:在Docker中实现单一镜像支持同时支持amd64和arm64架构
docker·容器·架构
kfepiza16 小时前
Dockerfile详解 笔记250801
docker·容器
云和数据.ChenGuang17 小时前
k8s-master03加入集群失败解决方法之一
java·容器·kubernetes