Docker 使用手册
以下是一份详细的Docker使用手册目录及核心内容概要,涵盖从基础到进阶的实践指南,供您学习参考。
目录
- Docker 简介
- 安装与配置
- 核心概念
- 基础命令操作
- 镜像管理与Dockerfile
- 容器网络
- 数据持久化
- Docker Compose
- Docker Swarm 集群
- 安全与最佳实践
- 常见问题与调试
1. Docker 简介
- 容器化技术:轻量级虚拟化,共享内核,隔离进程和资源。
Docker 优势:
- 快速部署
- 环境一致性
- 资源高效利用
- 易于扩展
核心组件:
- Docker Daemon(守护进程)
- Docker Client(客户端)
- Images(镜像)
- Containers(容器)
- Registry(镜像仓库,如Docker Hub)
2. 安装与配置
Ubuntu/CentOS 安装
# 卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
# 安装依赖
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 添加仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# 安装Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
# 验证安装
sudo docker run hello-world
Windows/macOS
- 下载 Docker Desktop:https://www.docker.com/products/docker-desktop
配置镜像加速器(国内用户)
// 编辑 /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com", "https://mirror.ccs.tencentyun.com"]
}
重启服务:sudo systemctl restart docker
3. 核心概念
- 镜像 (Image):只读模板,包含运行环境和应用程序。
- 容器 (Container):镜像的运行实例,具有可写层。
- 仓库 (Registry):存储和分发镜像的服务(如Docker Hub、阿里云镜像仓库)。
4. 基础命令操作
镜像管理
docker pull ubuntu:20.04 # 拉取镜像
docker images # 查看本地镜像
docker rmi <image_id> # 删除镜像
容器操作
docker run -d -p 80:80 --name mynginx nginx # 后台运行容器并映射端口
docker ps -a # 查看所有容器
docker start/stop/restart <container_id> # 启停容器
docker exec -it <container_id> /bin/bash # 进入容器终端
docker logs <container_id> # 查看日志
docker rm <container_id> # 删除容器
5. 镜像管理与Dockerfile
Dockerfile 示例
FROM python:3.8-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]
构建镜像
docker build -t myapp:v1 .
推送镜像到仓库
docker tag myapp:v1 username/myapp:v1
docker push username/myapp:v1
6. 容器网络
- 网络模式:
bridge
(默认)、host
、none
、自定义网络。 创建自定义网络:
docker network create my_network docker run --network=my_network --name app1 myapp
7. 数据持久化
Volume 数据卷
docker volume create my_volume
docker run -v my_volume:/data --name db mysql
Bind Mount 目录挂载
docker run -v /host/path:/container/path nginx
8. Docker Compose
docker-compose.yml 示例
version: '3'
services:
web:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
常用命令
docker-compose up -d # 启动服务
docker-compose down # 停止并删除容器
docker-compose logs # 查看日志
9. Docker Swarm 集群
docker swarm init --advertise-addr <MANAGER_IP>
docker service create --replicas 3 -p 80:80 --name web nginx
docker service scale web=5
10. 安全与最佳实践
- 最小化镜像:使用Alpine基础镜像,多阶段构建。
非root用户运行容器:
RUN useradd -m myuser USER myuser
- 定期更新镜像:修复安全漏洞。
限制资源:
docker run -m 512m --cpus 1.5 myapp
11. 常见问题
容器无法启动
docker inspect <container_id> # 查看详细配置
docker logs <container_id> # 检查日志
清理无用资源
docker system prune -a # 删除停止的容器、未使用的镜像和网络
附录:
- 官方文档:https://docs.docker.com
- 镜像仓库:https://hub.docker.com
- 社区支持:Docker Forum、Stack Overflow