目录
概述
本文档介绍如何在远程 Linux 服务器上安装和配置 Docker 环境,包括 Docker Engine 和 Docker Compose。
适用系统
- Ubuntu 18.04+ / Debian 10+
- CentOS 7+ / RHEL 7+
- 其他基于 systemd 的 Linux 发行版
前置要求
系统要求
- 操作系统: Linux (64位)
- 内核版本: 3.10 或更高
- 权限: root 用户或具有 sudo 权限的用户
- 网络: 能够访问软件仓库(可能需要配置镜像源)
检查系统信息
# 检查系统版本
cat /etc/os-release
# 检查内核版本
uname -r
# 检查系统架构
uname -m
安装方法
方法一:使用自动化安装脚本(推荐)
项目提供了自动化安装脚本,支持自动检测系统类型并安装 Docker。
1. 从本地执行远程安装
# 使用远程安装脚本(自动复制并执行)
cd /path/to/project/scripts
./install-docker-remote.sh <服务器IP> <用户名>
# 示例: ./install-docker-remote.sh 192.168.1.100 root
2. 手动复制脚本到服务器
# 复制安装脚本到远程服务器
scp scripts/install-docker.sh <用户名>@<服务器IP>:/tmp/
# 示例: scp scripts/install-docker.sh root@192.168.1.100:/tmp/
# SSH 连接到服务器
ssh <用户名>@<服务器IP>
# 示例: ssh root@192.168.1.100
# 执行安装脚本
chmod +x /tmp/install-docker.sh
/tmp/install-docker.sh
方法二:手动安装(Ubuntu/Debian)
1. 更新系统包
apt-get update
apt-get install -y \
ca-certificates \
curl \
gnupg \
lsb-release
2. 添加 Docker 官方 GPG key
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
3. 设置 Docker 仓库
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
4. 安装 Docker Engine
apt-get update
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
5. 启动 Docker 服务
systemctl start docker
systemctl enable docker
方法三:使用系统仓库安装(备用方案)
如果无法访问 Docker 官方仓库,可以使用系统仓库安装:
# Ubuntu/Debian
apt-get update
apt-get install -y docker.io docker-compose
# CentOS/RHEL
yum install -y docker docker-compose
# 启动服务
systemctl start docker
systemctl enable docker
注意: 系统仓库的 Docker 版本可能较旧,建议优先使用官方仓库。
安装 Docker Compose(独立版本)
Docker Compose 现在作为 Docker 插件提供(docker compose),如果需要独立的 docker-compose 命令:
# 下载 Docker Compose
DOCKER_COMPOSE_VERSION="2.24.0"
curl -L "https://github.com/docker/compose/releases/download/v${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 添加执行权限
chmod +x /usr/local/bin/docker-compose
# 验证安装
docker-compose --version
配置优化
1. 配置 Docker 镜像加速器
由于网络限制,建议配置国内镜像加速器以提高镜像拉取速度。
创建或编辑配置文件
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://dockerhub.azk8s.cn"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
EOF
重启 Docker 服务
systemctl daemon-reload
systemctl restart docker
验证镜像加速器配置
docker info | grep -A 10 "Registry Mirrors"
2. 配置用户权限(非 root 用户)
如果非 root 用户需要使用 Docker,需要将其添加到 docker 组:
# 将用户添加到 docker 组
usermod -aG docker $USER
# 或者指定用户名
usermod -aG docker username
# 重新登录或使用以下命令使组权限生效
newgrp docker
安全提示: 将用户添加到 docker 组等同于授予该用户 root 权限,请谨慎操作。
3. 配置 Docker 日志
Docker 默认日志可能占用大量磁盘空间,建议配置日志轮转:
# 编辑 daemon.json(如果已存在,合并配置)
cat >> /etc/docker/daemon.json <<EOF
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
EOF
# 重启 Docker
systemctl restart docker
4. 配置 Docker 存储驱动
根据系统选择合适的存储驱动:
# 查看当前存储驱动
docker info | grep "Storage Driver"
# 如需修改,编辑 daemon.json
cat >> /etc/docker/daemon.json <<EOF
{
"storage-driver": "overlay2"
}
EOF
验证安装
1. 检查 Docker 版本
docker --version
docker info
2. 检查 Docker Compose 版本
# 插件版本
docker compose version
# 独立版本(如果已安装)
docker-compose --version
3. 检查 Docker 服务状态
systemctl status docker
4. 测试 Docker 运行
# 运行测试容器
docker run --rm hello-world
# 查看运行中的容器
docker ps
# 查看所有容器(包括已停止的)
docker ps -a
5. 测试 Docker Compose
创建测试文件 docker-compose.test.yml:
version: '3.8'
services:
test:
image: hello-world
运行测试:
docker compose -f docker-compose.test.yml up
常见问题
1. 无法连接到 Docker Hub
问题: 拉取镜像时出现连接超时或网络错误。
解决方案:
- 配置镜像加速器(见配置优化)
- 检查防火墙设置
- 检查网络代理配置
2. Permission denied 错误
问题: 非 root 用户执行 Docker 命令时提示权限不足。
解决方案:
# 将用户添加到 docker 组
usermod -aG docker $USER
newgrp docker
3. Docker 服务无法启动
问题 : systemctl start docker 失败。
解决方案:
# 查看详细错误信息
systemctl status docker
journalctl -xe
# 检查 Docker 配置
docker info
# 重启 Docker 服务
systemctl restart docker
4. 磁盘空间不足
问题: Docker 镜像和容器占用大量磁盘空间。
解决方案:
# 清理未使用的镜像、容器、网络和构建缓存
docker system prune -a
# 清理未使用的卷
docker volume prune
# 查看磁盘使用情况
docker system df
5. GPG key 下载失败
问题: 安装时无法下载 Docker GPG key。
解决方案:
- 使用系统仓库安装(备用方案)
- 使用国内镜像源
- 检查网络连接和防火墙设置
6. Docker Compose 命令不存在
问题 : 执行 docker-compose 提示命令不存在。
解决方案:
- 使用插件版本:
docker compose(注意没有连字符) - 或安装独立版本(见安装方法)
附录
A. 常用 Docker 命令
# 镜像管理
docker images # 列出本地镜像
docker pull <image> # 拉取镜像
docker rmi <image> # 删除镜像
docker build -t <tag> . # 构建镜像
# 容器管理
docker ps # 列出运行中的容器
docker ps -a # 列出所有容器
docker run <image> # 运行容器
docker start <container> # 启动容器
docker stop <container> # 停止容器
docker rm <container> # 删除容器
docker logs <container> # 查看容器日志
docker exec -it <container> sh # 进入容器
# 系统管理
docker system df # 查看磁盘使用
docker system prune # 清理未使用的资源
docker info # 查看 Docker 信息
B. 常用 Docker Compose 命令
# 使用插件版本(推荐)
docker compose up # 启动服务
docker compose up -d # 后台启动
docker compose down # 停止并删除容器
docker compose ps # 查看服务状态
docker compose logs # 查看日志
docker compose build # 构建镜像
docker compose pull # 拉取镜像
# 使用独立版本
docker-compose up
docker-compose down
docker-compose ps
C. 安装脚本位置
项目中的安装脚本位于:
scripts/install-docker.sh- 主安装脚本scripts/install-docker-remote.sh- 远程安装脚本