在腾讯云 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-ulimits、max-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 节点) 的配置指南吗?欢迎继续提问!
PHPWP博客