Ubuntu 上使用 Docker 的完整入门指南
一 安装与启动
- 更新索引并安装依赖
- sudo apt update
- sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
- 添加 Docker 官方 GPG 密钥与 APT 源(推荐方式)
- 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 引擎
- sudo apt update
- sudo apt install -y docker-ce docker-ce-cli containerd.io
- 启动并设置开机自启
- sudo systemctl start docker
- sudo systemctl enable docker
- 验证安装
- sudo docker version
- sudo docker run --rm hello-world
- 可选 快速安装(系统仓库)
- sudo apt install -y docker.io
- sudo systemctl start docker && sudo systemctl enable docker
二 非 root 用户与常用管理
- 允许普通用户执行 docker(需重新登录生效)
- sudo usermod -aG docker $USER
- 服务管理
- 查看状态:sudo systemctl status docker
- 重启服务:sudo systemctl restart docker
- 镜像与容器常用命令
- 拉取镜像:docker pull ubuntu
- 运行交互式容器:docker run -it ubuntu bash
- 查看运行容器:docker ps
- 查看所有容器:docker ps -a
- 停止容器:docker stop <容器ID或名称>
- 启动已停止容器:docker start <容器ID或名称>
- 进入运行中容器:docker exec -it <容器ID或名称> bash
- 查看日志:docker logs <容器ID或名称>
- 删除容器:docker rm <容器ID或名称>
- 删除镜像:docker rmi <镜像名或ID>
三 配置镜像加速与资源限制
- 配置镜像加速器(提升拉取速度)
- 编辑配置文件:sudo nano /etc/docker/daemon.json
- 示例(按需选择其一或多项):
- {
“registry-mirrors”: [
“https://mirror.aliyuncs.com”,
“https://docker.m.daocloud.io”,
“https://registry.docker-cn.com”
]
}
- 使配置生效:sudo systemctl daemon-reload && sudo systemctl restart docker
- 资源限制(防止占用过多资源)
- 限制 CPU 与内存:docker run -it --cpus=“1.0” --memory=“512m” ubuntu
四 快速示例 运行 Nginx 并映射端口
- 拉取并启动 Nginx
- docker run -d --name web -p 8080:80 nginx:latest
- 验证
- 在浏览器访问:http://localhost:8080
- 常用操作
- 查看日志:docker logs web
- 进入容器:docker exec -it web bash
- 停止并删除:docker stop web && docker rm web
五 常见问题排查
- 权限被拒绝
- 将当前用户加入 docker 组并重新登录:sudo usermod -aG docker $USER
- 服务无法启动
- 查看日志定位问题:sudo journalctl -u docker
- 容器网络异常
- 重启 Docker 网络:sudo systemctl restart docker
- 检查网络:docker network inspect bridge
- 镜像拉取慢