Docker 简介

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器完全使用沙箱机制,相互之间不会有任何接口。

主要特点:

  • 轻量级:容器共享主机操作系统内核,启动速度快
  • 可移植性:一次构建,到处运行
  • 隔离性:应用之间完全隔离
  • 高效:相比虚拟机,资源占用更少

前置检查(系统要求)

系统要求

操作系统最低版本要求
Ubuntu20.04, 22.04, 24.04
Debian11 (Bullseye), 12 (Bookworm)
CentOS7, 8, Stream 9
RHEL8, 9
Fedora38, 39, 40

硬件要求

  • CPU: 64 位处理器
  • 内存: 至少 2GB RAM(推荐 4GB 以上)
  • 磁盘: 至少 20GB 可用空间
  • 内核版本: Linux kernel 3.10 或更高

检查系统信息

# 检查内核版本
uname -r
 
# 检查操作系统版本
cat /etc/os-release
 
# 检查系统架构
uname -m

安装步骤

Ubuntu/Debian 系统安装

步骤 1: 卸载旧版本(如有)

sudo apt-get remove docker docker-engine docker.io containerd runc

步骤 2: 更新软件包索引

sudo apt-get update

步骤 3: 安装依赖包

sudo apt-get install -y \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

步骤 4: 添加 Docker 官方 GPG 密钥

# 创建目录存放 GPG 密钥
sudo mkdir -p /etc/apt/keyrings
 
# 添加 Docker 官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
    sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

国内用户建议使用阿里云镜像源:

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | \
    sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

步骤 5: 设置 Docker 软件源

# Ubuntu 系统
echo "deb [arch=$(dpkg --print-architecture) \
    signed-by=/etc/apt/keyrings/docker.gpg] \
    https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) stable" | \
    sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

国内用户:

echo "deb [arch=$(dpkg --print-architecture) \
    signed-by=/etc/apt/keyrings/docker.gpg] \
    https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
    $(lsb_release -cs) stable" | \
    sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

步骤 6: 再次更新软件包索引

sudo apt-get update

步骤 7: 安装 Docker

# 安装 Docker 引擎及相关组件
sudo apt-get install -y docker-ce docker-ce-cli containerd.io \
    docker-buildx-plugin docker-compose-plugin

步骤 8: 创建符号链接(支持 docker compose 命令)

sudo mkdir -p /usr/libexec/docker/cli-plugins
sudo ln -s /usr/local/bin/docker-compose /usr/libexec/docker/cli-plugins/docker-compose

如果显示”文件已存在”可以忽略此步骤。


CentOS/RHEL 系统安装

步骤 1: 卸载旧版本(如有)

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

国内用户建议使用阿里云镜像源:

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

步骤 4: 启用软件源

# 启用 stable 仓库
sudo yum-config-manager --enable docker-ce-stable

步骤 5: 安装 Docker

# 安装 Docker 引擎及相关组件
sudo yum install -y docker-ce docker-ce-cli containerd.io \
    docker-buildx-plugin docker-compose-plugin

步骤 6: 启动 Docker 服务

sudo systemctl start docker
sudo systemctl enable docker

配置镜像加速器

由于 Docker Hub 在国内访问速度较慢,建议配置国内镜像加速器。

配置方法

1. 创建/编辑配置文件

sudo mkdir -p /etc/docker
sudo vim /etc/docker/daemon.json

2. 添加镜像加速地址

{
  "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com",
    "https://docker.xuanyuan.me",
    "https://docker.m.daocloud.io",
    "https://atomhub.openatom.cn"
  ]
}

常用镜像源说明:

镜像源地址说明
https://mirror.ccs.tencentyun.com腾讯云 CDN,稳定(推荐腾讯云服务器使用)
https://docker.xuanyuan.me轩辕镜像,免费版
https://docker.m.daocloud.ioDaoCloud 镜像站
https://atomhub.openatom.cn原子云镜像(仅基础镜像)

3. 阿里云镜像加速器(需登录获取)

  1. 登录 阿里云容器镜像服务控制台
  2. 进入”镜像加速器”页面
  3. 复制专属加速地址到 daemon.json

4. 重启 Docker 服务

sudo systemctl daemon-reload
sudo systemctl restart docker

5. 验证配置

docker info | grep "Registry Mirrors" -A 10

常用命令参考

Docker 基础命令

# 查看 Docker 版本
docker version
 
# 查看 Docker 信息
docker info
 
# 查看 Docker 镜像
docker images
 
# 拉取镜像
docker pull nginx:latest
 
# 运行容器
docker run -d -p 80:80 --name my-web nginx
 
# 查看运行中的容器
docker ps
 
# 查看所有容器(包括已停止的)
docker ps -a
 
# 停止容器
docker stop my-web
 
# 启动容器
docker start my-web
 
# 重启容器
docker restart my-web
 
# 删除容器
docker rm my-web
 
# 删除镜像
docker rmi nginx:latest
 
# 查看容器日志
docker logs my-web
 
# 进入容器内部
docker exec -it my-web bash
 
# 查看容器资源使用情况
docker stats
 
# 查看容器详细信息
docker inspect my-web

Docker Compose 命令

# 启动服务
docker compose up -d
 
# 停止服务
docker compose down
 
# 查看服务状态
docker compose ps
 
# 查看服务日志
docker compose logs -f
 
# 重建并启动服务
docker compose up -d --build

系统管理命令

# 启动 Docker 服务
sudo systemctl start docker
 
# 停止 Docker 服务
sudo systemctl stop docker
 
# 重启 Docker 服务
sudo systemctl restart docker
 
# 查看 Docker 服务状态
sudo systemctl status docker
 
# 设置 Docker 开机自启
sudo systemctl enable docker
 
# 禁用 Docker 开机自启
sudo systemctl disable docker
 
# 清理未使用的资源
docker system prune
 
# 清理所有未使用的资源(包括镜像、容器、卷)
docker system prune -a --volumes

验证安装

1. 检查 Docker 版本

docker --version

预期输出:

Docker version 27.x.x, build xxxxxxx

2. 运行 Hello World 测试

docker run hello-world

预期输出:

Hello from Docker!
This message shows that your installation appears to be working correctly.
...

3. 检查 Docker 服务状态

sudo systemctl status docker

预期输出: 显示 active (running) 状态

4. 测试运行 Nginx 容器

docker run -d -p 8080:80 --name test-nginx nginx

然后在浏览器中访问 http://localhost:8080,应该能看到 Nginx 欢迎页面。

5. 验证镜像加速器配置

docker info | grep "Registry Mirrors" -A 5

常见问题排查

1. Docker 无法启动

错误信息:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

解决方案:

# 启动 Docker 服务
sudo systemctl start docker
 
# 查看服务状态
sudo systemctl status docker
 
# 查看 Docker 日志
sudo journalctl -u docker.service

2. 权限问题

错误信息:

Got permission denied while trying to connect to the Docker daemon socket

解决方案:

# 将当前用户添加到 docker 组
sudo usermod -aG docker $USER
 
# 重新登录或执行以下命令使配置生效
newgrp docker
 
# 验证
groups $USER

3. 镜像拉取速度慢

解决方案:

  • 配置国内镜像加速器(见上文”配置镜像加速器”章节)
  • 检查网络连接
  • 尝试使用不同的镜像源

4. 容器启动失败

错误信息:

Error response from daemon: Cannot start container

解决方案:

# 查看容器日志
docker logs <容器名或 ID>
 
# 检查端口是否被占用
sudo netstat -tulpn | grep <端口>
 
# 强制删除旧容器
docker rm -f <容器名或 ID>

5. Docker 磁盘空间不足

解决方案:

# 查看磁盘使用情况
docker system df
 
# 清理未使用的资源
docker system prune
 
# 清理所有未使用的资源(谨慎使用)
docker system prune -a --volumes

6. 容器重启失败

错误信息:

container "xxx": already exists

解决方案:

# 停止并删除所有容器
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)
 
# 或者重启 Docker 服务
sudo systemctl restart docker

7. 配置文件语法错误

错误信息:

unable to configure the Docker daemon with file /etc/docker/daemon.json

解决方案:

# 检查配置文件语法
cat /etc/docker/daemon.json
 
# 使用在线 JSON 验证工具检查语法
# 或者手动检查括号、引号是否匹配

8. SELinux 阻止 Docker 运行(CentOS/RHEL)

解决方案:

# 临时禁用 SELinux
sudo setenforce 0
 
# 或者配置 SELinux 策略
sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config
sudo setenforce 0

9. 网络问题

解决方案:

# 重置 Docker 网络
sudo systemctl stop docker
sudo rm -rf /var/lib/docker/network
sudo systemctl start docker
 
# 检查防火墙设置
sudo firewall-cmd --list-all  # CentOS/RHEL
sudo ufw status               # Ubuntu

附录

阿里云镜像源配置示例

{
  "registry-mirrors": [
    "https://<你的加速地址>.mirror.aliyuncs.com"
  ]
}

腾讯云镜像源配置示例

{
  "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com"
  ]
}

官方文档链接


最后更新: 2026 年 3 月

适用版本: Docker CE 27.x