1. 为什么选择Docker?
Docker作为当前最流行的容器化技术,已经成为开发者和运维人员的标配工具。它通过操作系统级别的虚拟化技术,将应用程序及其依赖打包到一个轻量级、可移植的容器中。相比传统虚拟机,Docker容器启动更快、资源占用更少,且能确保环境一致性,彻底解决了"在我机器上能跑"的经典问题。
在Ubuntu上使用Docker尤其方便,因为Ubuntu作为最流行的Linux发行版之一,对Docker有原生支持。无论是开发环境搭建、微服务部署,还是机器学习项目,Docker都能提供标准化的运行环境。我曾在多个项目中遇到环境配置问题,自从全面采用Docker后,这些问题都迎刃而解。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 安装准备
2.1 系统要求
在开始安装前,请确保你的Ubuntu系统满足以下要求:
- Ubuntu 20.04 LTS或更高版本(推荐22.04 LTS)
- 64位系统架构
- 至少2GB内存(运行容器需要额外内存)
- 已配置好sudo权限的用户
提示:使用
lsb_release -a命令可以查看当前Ubuntu版本信息。如果是旧版本,建议先升级系统。
2.2 清理旧版本
如果你之前安装过旧版Docker,建议先彻底清理:
bash复制sudo apt-get remove docker docker-engine docker.io containerd runc
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
这样可以避免版本冲突导致的问题。我曾经因为没清理干净旧版本,导致新安装的Docker无法正常启动。
3. 安装Docker引擎
3.1 设置仓库
首先更新apt索引并安装必要的依赖包:
bash复制sudo apt update
sudo apt install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release \
software-properties-common
然后添加Docker的官方GPG密钥和APT仓库。为了提高国内用户的下载速度,这里使用清华源:
bash复制# 添加Docker的官方GPG密钥
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 添加Docker的官方APT仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
3.2 安装Docker引擎
更新apt索引并安装最新版Docker:
bash复制sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
安装完成后验证版本:
bash复制sudo docker --version
# 输出示例:Docker version 20.10.17, build 100c701
3.3 配置用户权限
默认情况下,运行Docker命令需要sudo权限。为了方便使用,可以将当前用户添加到docker组:
bash复制sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
现在可以不用sudo测试Docker是否正常工作:
bash复制docker run hello-world
如果看到"Hello from Docker!"的消息,说明安装成功。
注意:如果遇到权限问题,可以尝试:
bash复制sudo chmod o+rw /var/run/docker.sock
4. 安装Docker Compose
Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。从Docker 20.10.0开始,Compose已经作为插件集成到Docker CLI中:
bash复制sudo apt install -y docker-compose-plugin
验证安装:
bash复制docker compose version
# 输出示例:Docker Compose version v2.6.0
5. 配置NVIDIA容器运行时(可选)
如果你的Ubuntu系统有NVIDIA显卡,并且需要在Docker容器中使用GPU加速(如深度学习训练),需要安装NVIDIA容器工具包:
5.1 添加NVIDIA仓库
bash复制curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
5.2 安装工具包
bash复制sudo apt update
sudo apt install -y nvidia-container-toolkit
5.3 配置运行时
bash复制sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
5.4 验证GPU支持
bash复制docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
如果看到显卡信息输出,说明配置成功。
6. Docker基本使用
6.1 镜像操作
bash复制# 搜索镜像
docker search ubuntu
# 拉取镜像
docker pull ubuntu:20.04
# 列出本地镜像
docker images
# 删除镜像
docker rmi ubuntu:20.04
# 构建镜像(需要Dockerfile)
docker build -t my-image:1.0 .
# 保存镜像为tar文件
docker save -o ubuntu.tar ubuntu:20.04
# 从tar文件加载镜像
docker load -i ubuntu.tar
6.2 容器操作
bash复制# 运行容器
docker run -it --name my-container ubuntu:20.04 /bin/bash
# 列出运行中的容器
docker ps
# 列出所有容器
docker ps -a
# 启动/停止/重启容器
docker start my-container
docker stop my-container
docker restart my-container
# 进入运行中的容器
docker exec -it my-container /bin/bash
# 删除容器
docker rm my-container
# 查看容器日志
docker logs -f my-container
