服务器安装Docker教程。如何在云服务器安装Docker容器?

目录

  • [1. 清除旧版本防止冲突](#1. 清除旧版本防止冲突)
  • [2. 使用镜像源安装Docker](#2. 使用镜像源安装Docker)
  • [3. 配置国内Docker源镜像加速](#3. 配置国内Docker源镜像加速)
  • [4. 允许非 root 用户免 sudo 运行 Docker](#4. 允许非 root 用户免 sudo 运行 Docker)
  • [5. 设置 Docker 开机自启](#5. 设置 Docker 开机自启)

1. 清除旧版本防止冲突

如果你的系统之前尝试安装过 Docker,建议先彻底清理干净:

bash 复制代码
sudo apt-get remove docker docker-engine docker.io containerd runc

这样可以防止以前的安装残留干扰后续安装


2. 使用镜像源安装Docker

众所周知,国内的服务器/云服务器想要访问Docker会遇到网络问题,因此建议使用国内大厂提供的镜像源:

真的不是广告啊

  1. 更新 apt 包索引并安装基础依赖
bash 复制代码
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release
  1. 添加阿里云的 Docker GPG 密钥
bash 复制代码
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  1. 将阿里云的 Docker 软件源写入系统列表
bash 复制代码
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. 再次更新索引并安装 Docker 核心及 Compose 插件
bash 复制代码
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
  1. 验证是否安装成功
bash 复制代码
docker --version
docker compose version

如果能正常输出版本号,说明安装成功。


3. 配置国内Docker源镜像加速

由于网络原因,在国内拉取 Docker 镜像非常容易超时,因此可以配置国内大厂提供的Docker镜像

防止你们说这个是阿里云镜像的广告,这里使用腾讯云

执行以下命令,直接创建并写入 Docker 配置文件:

bash 复制代码
sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com"
  ]
}
EOF

写入完成后,必须重启 Docker 服务使配置生效:

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

检查加速是否生效:

bash 复制代码
sudo docker info

在输出的内容接近底部的位置,寻找 Registry Mirrors: 字样,如果下方显示 https://mirror.ccs.tencentyun.com,说明设置成功

4. 允许非 root 用户免 sudo 运行 Docker

默认情况下,只有 root 用户或者加 sudo 才能运行 Docker。

如果想要让你和你创建的新用户能直接运行docker,可以按需执行以下操作:

  • 如果你想让当前登录的用户免sudo执行,就把当前用户加入docker组
bash 复制代码
sudo usermod -aG docker $USER
  • 如果你想把创新创建的普通用户(假设用户名叫 tom)免sudo执行,那么就把它加入docker组
bash 复制代码
# 记得把 tom 改成你需要的用户名
sudo usermod -aG docker tom

5. 设置 Docker 开机自启

确保服务器因为意外重启或用户手动重启后,Docker 能够自己跑起来:

bash 复制代码
sudo systemctl enable docker
sudo systemctl enable containerd

免责声明

本教程针对Ubuntu系统编写,其它系统原理相同,但请其它系统用户检查命令准确性。

本教程已在本人服务器上正确完成运行,但不保证每台机器环境相同,请提前做好备份工作!

相关推荐
小白的码BUG之路7 小时前
linux -- ssh两台机器相连
运维·服务器·ssh
JavaPub-rodert8 小时前
Docker 日志为什么能把磁盘写爆?讲透 json-file、local、journald、日志轮转与 docker logs
docker·eureka·json
缓慢更新9 小时前
表单引擎的存储建模:宽表与文档库的取舍
运维·服务器·网络·数据库·低代码·oracle·适配器模式
人生匆匆9 小时前
docker部署ceph集群
ceph·docker·容器
续写烂尾9 小时前
贴片 SD NAND、eMMC、TF 卡规格怎么定?硬件工程师选型清单
运维·服务器·网络
迪康妍妍9 小时前
终端管控实操:封堵网盘与IM外发通道的落地思路
运维·网络·安全·架构·安全性测试
sxgzzn10 小时前
如何选择合适的开关柜在线监测工具?
运维·重构·无人机·开关柜局放在线监测·光伏运维管理系统
科技小E10 小时前
监控设备品牌杂乱无法互通?EasyGBS打通孤岛,统一汇聚视频
服务器·网络·音视频
zxcvb15311 小时前
运维经验分享:监控网页更新内容的几种思路
运维
weixin1997010801611 小时前
《抖音商品API:/product/detail 与 /product/list 的字段边界与图片合规踩坑》(附 Python 源码)
服务器·网络·windows