ubuntu与docker如何集成
小樊
40
2025-11-18 21:05:19
Ubuntu 与 Docker 集成实操指南
一 安装与启动
- 更新系统并安装依赖
- sudo apt update && sudo apt upgrade -y
- sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
- 卸载旧版组件(如有)
- sudo apt remove -y docker docker-engine docker.io containerd runc
- 添加 Docker 官方 GPG 密钥与软件源(使用 keyring 更安全)
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- echo “deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- 安装 Docker Engine 与可选插件
- sudo apt update
- sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- 启动并设置开机自启
- sudo systemctl start docker
- sudo systemctl enable docker
- 验证安装
- docker --version
- sudo docker run --rm hello-world
二 非 root 使用与常用管理
- 允许非 root 用户执行 docker(推荐)
- sudo usermod -aG docker $USER
- 注意:需重新登录或重启会话后生效
- 常用命令
- 查看容器:docker ps -a
- 启动/停止/重启:docker start|stop|restart <容器名或ID>
- 进入容器:docker exec -it <容器名或ID> bash
- 日志查看:docker logs -f <容器名或ID>
- 清理资源:docker system prune -a --volumes(谨慎,会删除未使用镜像/容器/网络/卷)
三 镜像加速与网络 DNS 配置
- 配置镜像加速(提升拉取速度,按需选择镜像源)
- sudo mkdir -p /etc/docker
- sudo tee /etc/docker/daemon.json <<-‘EOF’
{
“registry-mirrors”: [
“https://docker.mirrors.tuna.tsinghua.edu.cn”,
“https://ccr.ccs.tencentyun.com”,
“https://docker.m.daocloud.io”
]
}
EOF
- sudo systemctl restart docker
- 容器无法访问互联网时配置 DNS
- sudo tee /etc/docker/daemon.json <<-‘EOF’
{
“dns”: [“8.8.8.8”, “114.114.114.114”]
}
EOF
- sudo systemctl restart docker
四 Docker Compose 与服务编排
- 安装方式
- Ubuntu 22.04+ 建议直接使用插件:sudo apt install -y docker-compose-plugin
- 也可使用独立二进制(示例为旧版本,仅供兼容性参考):
- sudo curl -L “https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose
- sudo chmod +x /usr/local/bin/docker-compose
- 基本用法
- 在项目目录创建 docker-compose.yml(示例)
- version: “3.8”
- services:
- web:
- image: nginx:latest
- ports:
- 启动/查看/停止
- docker compose up -d
- docker compose ps
- docker compose down
五 GPU 加速与常见问题
- GPU 加速(NVIDIA 容器工具链)
- 安装 nvidia-docker2(确保已安装合适版本的 NVIDIA 驱动)
- sudo apt update && sudo apt install -y nvidia-docker2
- sudo systemctl restart docker
- 运行 GPU 容器
- docker run --rm --gpus all nvidia/cuda:12.4-base nvidia-smi
- 常见问题速解
- 安装失败提示 “package ‘docker-ce’ has no installation candidate”
- 重新导入 GPG 并清理旧源后更新:
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- sudo rm /etc/apt/sources.list.d/docker.list
- sudo apt update
- 磁盘空间不足
- 定期执行:docker system prune -a --volumes
- 构建/运行性能优化
- 使用 Buildx 进行多平台构建:
- docker buildx create --name mybuilder && docker buildx use mybuilder
- docker buildx build --platform linux/amd64,linux/arm64 -t yourimage:latest --push .