本文是为需要在Ubuntu系统部署容器服务的开发者准备的详细教程。我们将分两个主要部分讲解:Docker引擎的标准安装流程和Docker Compose的配置方法。所有操作均在终端执行,建议使用Ubuntu 18.04及以上版本。
一、Docker引擎安装全流程
(总耗时约5-10分钟,需root权限)
1. 系统环境准备
在开始安装前,建议先更新软件源并升级现有软件包:
sudo apt-get update # 刷新软件源索引
sudo apt-get upgrade -y # 自动升级所有可更新软件包
注意:若系统提示需要重启(如内核升级),建议执行`sudo reboot`重启后再继续
2. 安装必备依赖组件
sudo apt-get install -y \ca-certificates \ # SSL证书支持curl \ # 网络传输工具gnupg \ # 加密签名工具lsb-release # 系统版本信息工具
这些依赖确保后续安装过程的安全性和兼容性
3. 官方脚本自动化安装
推荐使用Docker官方提供的一键安装脚本:
curl -fsSL https://test.docker.com -o test-docker.sh # 下载安装脚本
sh test-docker.sh # 执行安装程序
说明:此脚本会自动完成以下工作:
- 添加Docker官方GPG密钥
- 设置稳定版仓库
- 安装containerd运行时
- 配置docker-ce核心组件
- 创建docker用户组
4. 配置国内镜像加速(关键步骤)
由于默认仓库访问较慢,需配置镜像源加速:
sudo vim /etc/docker/daemon.json # 使用nano编辑器可替换为sudo nano
输入以下内容(建议保留3-4个镜像源):
{"registry-mirrors": ["https://docker.m.daocloud.io", # 道克镜像"https://docker.imgdb.de", # 德国镜像"https://docker-0.unsee.tech", # 美国西海岸镜像"https://docker.hlmirror.com" # 香港镜像]
}保存后按Esc输入:wq退出vim
5. 重启服务使配置生效
sudo systemctl daemon-reload # 重载服务配置
sudo systemctl restart docker # 重启docker服务
sudo systemctl enable docker # 设置开机自启(可选)
验证服务状态:
`systemctl status docker`应显示active(running)
6. 功能验证测试
执行基础镜像拉取测试:
sudo docker pull hello-world # 下载测试镜像
sudo docker run hello-world # 运行测试容器
成功输出"Hello from Docker!"即表示安装成功
二、Docker Compose安装指南
(Docker官方推荐使用插件形式安装)
1. 执行安装命令
sudo apt install -y docker-compose-plugin # 安装官方插件版
该版本相较于传统的docker-compose有以下优势:
- 直接集成到docker CLI
- 版本与Docker Engine同步更新
- 兼容compose v2语法
2. 验证安装结果
docker compose version # 注意中间没有短横线
预期输出示例:
Docker Compose version v2.17.2
三、进阶配置建议
1. 非root用户权限配置(可选)
为避免每次使用sudo,可将当前用户加入docker组:
sudo usermod -aG docker $USER # $USER替换为具体用户名
newgrp docker # 刷新用户组
注意:修改后需要重新登录生效
2. 常用维护命令
- 查看docker版本:`docker version`
- 查看系统信息:`docker info`
- 清理无用镜像:`docker system prune`
四、常见问题排查
Q1:镜像拉取速度慢
A:检查daemon.json配置格式,建议注释掉部分镜像源测试
Q2:权限拒绝错误
A:执行`sudo chmod 777 /var/run/docker.sock`临时解决,建议使用用户组方案
Q3:脚本安装失败
A:可尝试官方备用方案:
sudo apt-get install docker-ce docker-ce-cli containerd.io
五、版本兼容说明
- Docker 23.x+ 已内置Compose插件
- 旧版Compose文件需注意volume语法差异
- 建议定期执行`sudo apt-get upgrade docker-*`保持更新
六、安全建议
1. 定期清理无用镜像:`docker image prune`
2. 避免使用--privileged特权模式
3. 生产环境建议配置TLS证书加密
通过本教程,您已完成Docker环境的完整部署。接下来可以:
- 尝试部署Nginx:`docker run -d -p 80:80 nginx`
- 学习Dockerfile编写
- 使用docker-compose编排多容器应用