Docker 简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器完全使用沙箱机制,相互之间不会有任何接口。
主要特点:
- 轻量级:容器共享主机操作系统内核,启动速度快
- 可移植性:一次构建,到处运行
- 隔离性:应用之间完全隔离
- 高效:相比虚拟机,资源占用更少
前置检查(系统要求)
系统要求
| 操作系统 | 最低版本要求 |
|---|---|
| Ubuntu | 20.04, 22.04, 24.04 |
| Debian | 11 (Bullseye), 12 (Bookworm) |
| CentOS | 7, 8, Stream 9 |
| RHEL | 8, 9 |
| Fedora | 38, 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.json2. 添加镜像加速地址
{
"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.io | DaoCloud 镜像站 |
https://atomhub.openatom.cn | 原子云镜像(仅基础镜像) |
3. 阿里云镜像加速器(需登录获取)
- 登录 阿里云容器镜像服务控制台
- 进入”镜像加速器”页面
- 复制专属加速地址到
daemon.json
4. 重启 Docker 服务
sudo systemctl daemon-reload
sudo systemctl restart docker5. 验证配置
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-webDocker 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.service2. 权限问题
错误信息:
Got permission denied while trying to connect to the Docker daemon socket
解决方案:
# 将当前用户添加到 docker 组
sudo usermod -aG docker $USER
# 重新登录或执行以下命令使配置生效
newgrp docker
# 验证
groups $USER3. 镜像拉取速度慢
解决方案:
- 配置国内镜像加速器(见上文”配置镜像加速器”章节)
- 检查网络连接
- 尝试使用不同的镜像源
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 --volumes6. 容器重启失败
错误信息:
container "xxx": already exists
解决方案:
# 停止并删除所有容器
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)
# 或者重启 Docker 服务
sudo systemctl restart docker7. 配置文件语法错误
错误信息:
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 09. 网络问题
解决方案:
# 重置 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