Docker 安装与配置指南
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 或 Windows 机器上。
容器化Docker 安装
Linux (官方一键安装脚本)
适用于 Ubuntu、Debian、CentOS 等主流发行版。官方脚本会自动检测系统并安装最新稳定版。
bash
curl -fsSL https://get.docker.com | bash安装完成后,启动 Docker 并设置开机自启:
bash
sudo systemctl start docker
sudo systemctl enable dockerWindows
- 确保系统为 Windows 10/11 专业版/企业版/教育版(支持 Hyper-V),或安装了 WSL 2。
- 前往 Docker Desktop for Windows 下载安装包。
- 运行安装程序,按照提示完成安装。
- 安装完成后,重启电脑。
macOS
- 前往 Docker Desktop for Mac 下载
.dmg文件。 - 根据芯片类型选择 Mac with Intel chip 或 Mac with Apple chip。
- 拖拽 Docker 图标到 Applications 文件夹。
常用命令速查
| 命令 | 说明 |
|---|---|
| 镜像管理 | |
docker pull <image> | 拉取镜像 |
docker images | 列出本地镜像 |
docker rmi <id> | 删除镜像 |
| 容器操作 | |
docker run -d -p 80:80 <image> | 后台运行并映射端口 |
docker ps | 查看运行中的容器 |
docker ps -a | 查看所有容器(含停止的) |
docker stop <id> | 停止容器 |
docker rm <id> | 删除容器 |
docker logs -f <id> | 查看容器实时日志 |
docker exec -it <id> sh | 进入容器终端 |
Docker Compose (V2)
新版 Docker Desktop 和 Linux 包已内置 docker compose 命令(注意中间有空格,不再是 docker-compose)。
常用命令:
bash
# 后台启动所有服务
docker compose up -d
# 停止并删除容器
docker compose down
# 查看服务日志
docker compose logs -f
# 更新镜像并重启
docker compose pull && docker compose up -d⚠️ 常见问题 (FAQ)
1. 权限问题 (Linux)
现象:执行 docker 命令时提示 permission denied。 解决:将当前用户加入 docker 用户组(无需 sudo 也能运行)。
bash
sudo usermod -aG docker $USER
# 此时需注销并重新登录,或执行以下命令立即生效:
newgrp docker2. 镜像拉取慢 / 超时 (配置国内源)
由于网络原因,国内直接连接 Docker Hub 经常失败。建议配置镜像加速器。
编辑或创建 /etc/docker/daemon.json:
json
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://huecker.io",
"https://dockerhub.timeweb.cloud",
"https://noohub.ru"
]
}注:镜像源可能随时间失效,请根据实际情况寻找可用源。
修改后重启服务:
bash
sudo systemctl daemon-reload
sudo systemctl restart docker3. 容器内部无法联网
现象:容器内无法 ping 通外网或解析域名。 解决:通常是宿主机防火墙或 DNS 问题。
- 检查防火墙是否拦截了转发。
- 在
docker run时添加--dns 8.8.8.8尝试。 - 重建 docker0 网桥:
sudo service docker stop->sudo ip link set dev docker0 down->sudo brctl delbr docker0->sudo service docker start。
4. 磁盘空间被占满
Docker 使用久了会产生大量未使用的镜像、容器和卷。
一键清理(慎用):
bash
# 清理所有停止的容器、未使用的网络和挂起的镜像
docker system prune
# 深度清理(包含所有未使用的镜像和卷)
docker system prune -a --volumes