奋斗
努力

在云服务器上如何安装和配置Docker环境?

云计算

在云服务器上安装和配置 Docker 环境,通常分为以下步骤(以 Ubuntu/Debian 为例,CentOS/RHEL 略有差异):


一、前置准备

  1. 确认系统版本

    cat /etc/os-release
    uname -r

    Docker 官方支持主流 Linux 发行版(Ubuntu 20.04+、Debian 11+、CentOS 7+/8+、AlmaLinux 等)。

  2. 更新系统包

    sudo apt update && sudo apt upgrade -y          # Debian/Ubuntu
    # 或
    sudo yum update -y                              # CentOS/RHEL
  3. 卸载旧版 Docker(如有)

    sudo apt remove docker docker-engine docker.io containerd runc
    # 或
    sudo yum remove docker docker-client docker-server docker-compose-plugin

二、安装 Docker Engine(推荐方式)

✅ 方法一:使用官方脚本(最简单,适用于多数场景)

curl -fsSL https://get.docker.com | sh -s docker --mirror Aliyun
# 若网络慢,可替换为:
# curl -fsSL https://get.docker.com | sh -s docker

💡 提示:国内用户建议加 --mirror Aliyun 提速;若无此参数且下载慢,可手动换源后执行。

✅ 方法二:手动安装(更可控)

1. 添加 Docker 官方 GPG 密钥与仓库

Ubuntu/Debian:

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

# 创建目录并添加密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | 
  sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 添加软件源
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

# 更新并安装
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

CentOS/RHEL:

sudo dnf install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

三、启动并设置开机自启

sudo systemctl enable --now docker
sudo systemctl status docker

验证是否正常运行:

docker version
docker info

四、非 root 用户运行 Docker(可选但推荐)

避免每次用 sudo:

sudo usermod -aG docker $USER
newgrp docker   # 立即生效(或重新登录)

测试:

docker run hello-world

⚠️ 注意:将用户加入 docker 组相当于赋予类似 root 的权限,请谨慎操作。


五、配置镜像提速(国内必做)

编辑 /etc/docker/daemon.json:

{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

然后重启 Docker:

sudo systemctl daemon-reload
sudo systemctl restart docker

🔔 若 daemon.json 不存在则新建;确保 JSON 格式正确(无 trailing comma)。


六、安全加固建议(生产环境)

项目 建议
防火墙 仅开放必要端口(如 2375 不暴露公网!)
TLS 认证 启用 Docker Daemon TLS(高级场景)
资源限制 使用 --memory, --cpus 限制容器资源
自动清理 定期执行 docker system prune -a
日志管理 配置 log-opts 防止磁盘占满

示例:限制容器资源

docker run -d --name test --memory=512m --cpus=0.5 nginx

七、常见问题排查

  • ❌ permission denied while trying to connect to the Docker daemon socket
    → 检查用户是否在 docker 组:groups $USER

  • ❌ unable to pull image
    → 检查 daemon.json 中镜像源是否可用;尝试切换其他镜像源

  • ❌ containerd not found
    → 确保安装了 containerd.io 包

  • 🔄 更新 Docker:

    sudo apt update && sudo apt upgrade docker-ce docker-ce-cli containerd.io
    # 或
    sudo dnf update docker-ce docker-ce-cli containerd.io

需要我针对你的具体操作系统(如 CentOS 7、Alibaba Cloud Linux 3 等)提供定制化命令,或协助配置 Docker Compose / Kubernetes 集成吗?

未经允许不得转载:云服务器 » 在云服务器上如何安装和配置Docker环境?