腾讯云Ubuntu服务器安装Docker的完整步骤是什么?

在腾讯云 Ubuntu 服务器上安装 Docker 的完整步骤如下,推荐使用官方推荐的 Docker Engine(社区版)安装方式,确保系统兼容性和安全性:


✅ 前置条件

  • 服务器为 Ubuntu 18.04+(推荐 20.04/22.04 LTS)
  • 已拥有 root 权限 或可通过 sudo 执行命令
  • 网络连接正常(用于拉取镜像和包)
  • 防火墙允许必要端口(如 2375、2376、HTTP/HTTPS 等,视需求而定)

🔧 一、卸载旧版本(如有)

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

💡 若未安装过 Docker,可跳过此步。


📦 二、设置 Docker 官方 APT 仓库

1. 更新包索引

sudo apt-get update

2. 安装依赖工具(curl、gnupg、ca-certificates 等)

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

3. 添加 Docker 官方 GPG 密钥

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | 
  sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

4. 设置稳定版源(推荐)

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

✅ 可选:如需测试版,将 stable 改为 edge;企业版用 docker-ce-stable 替换 docker-ce


🚀 三、安装 Docker Engine

1. 再次更新包索引

sudo apt-get update

2. 安装 Docker Engine、CLI 和容器运行时

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

⚠️ 注意:docker-compose-plugin 是新版插件形式(替代旧版 docker-compose 二进制),后续通过 docker compose 调用。


🔐 四、验证安装并配置非 root 用户(可选但推荐)

1. 检查版本

docker --version
docker compose version

2. 运行测试容器

sudo docker run hello-world

✅ 成功输出提示说明安装无误。

3. (可选)将当前用户加入 docker 组,避免每次加 sudo

sudo usermod -aG docker $USER
# 使配置生效(需重新登录或执行 newgrp docker)
newgrp docker

🔒 安全提醒:docker 组成员等效于 root,请谨慎授权。


☁️ 五、腾讯云环境特别注意事项

项目 建议
安全组规则 开放所需端口(如 80/443/自定义服务端口),Docker 默认不监听外部 TCP(除非显式绑定 -p 或修改 daemon.json)
SELinux/AppArmor Ubuntu 默认无 SELinux;AppArmor 通常启用,无需额外配置
云监控/日志 建议开启 Docker 日志驱动为 json-file + fluentbit 或接入腾讯云 SLS 进行集中采集
资源限制 根据实例规格调整 daemon.json 中的 default-ulimitsmax-concurrent-downloads 等参数

🛠️ 六、配置 Docker Daemon(可选优化)

编辑 /etc/docker/daemon.json(若无则新建):

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

然后重启服务:

sudo systemctl daemon-reload
sudo systemctl restart docker

🌐 国内用户强烈建议配置镜像提速器,提升拉取速度。


🧪 七、常用管理命令速查

操作 命令
查看运行中容器 docker ps
查看所有容器(含停止) docker ps -a
启动/停止/重启容器 docker start/stop/restart <容器ID>
进入容器终端 docker exec -it <容器ID> bash
查看日志 docker logs -f <容器ID>
删除容器 docker rm <容器ID>
清理未使用资源 docker system prune -a

❗ 常见问题排查

  • Permission denied when trying to connect to Docker daemon socket?
    → 检查用户是否在 docker 组:groups $USER;确认 socket 权限:ls -l /var/run/docker.sock

  • 无法拉取镜像?
    → 检查网络连通性;尝试更换镜像提速器;临时关闭防火墙测试:sudo ufw disable

  • 容器无法访问网络?
    → 检查 NAT 是否启用:cat /proc/sys/net/ipv4/ip_forward(应为 1);必要时手动转发:

    echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
    # 永久生效写入 /etc/sysctl.conf

需要我提供 一键安装脚本Docker Compose 多容器部署示例,或针对 特定业务场景(如 WordPress、MySQL、K8s 节点) 的配置指南吗?欢迎继续提问!