Docker 使用手册
目录
1. Docker 概述
Docker 是一个开源的应用容器引擎,允许开发者将应用及其依赖打包到轻量级、可移植的容器中,实现快速部署和跨环境一致性运行。
优势
- 轻量级:共享操作系统内核,资源占用小
- 标准化:一次构建,随处运行
- 隔离性:容器间相互隔离,安全可靠
- 快速部署:秒级启动,简化CI/CD流程
2. 核心概念
概念 | 说明 |
---|---|
镜像(Image) | 只读模板,包含运行环境和应用程序(如:Ubuntu+Python+Flask) |
容器(Container) | 镜像的运行实例,可读写 |
仓库(Registry) | 存储镜像的服务器(默认Docker Hub) |
Dockerfile | 定义镜像构建步骤的脚本文件 |
Docker Compose | 通过YAML文件定义和运行多容器应用的工具 |
3. 安装 Docker
Windows/macOS
- 下载 Docker Desktop
- 双击安装程序完成安装
启动后在终端验证:
docker --version
Linux (Ubuntu)
# 卸载旧版本
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 lsb-release
# 添加GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 设置仓库
echo "deb [arch=amd64 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-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
# 验证安装
sudo docker run hello-world
4. 基础命令
镜像操作
# 拉取镜像
docker pull ubuntu:20.04
# 列出本地镜像
docker images
# 删除镜像
docker rmi <image_id>
# 构建镜像
docker build -t myapp:1.0 .
容器操作
# 运行容器(后台模式)
docker run -d --name my_container -p 8080:80 nginx
# 查看运行中的容器
docker ps
# 查看所有容器
docker ps -a
# 停止容器
docker stop <container_id>
# 启动已停止的容器
docker start <container_id>
# 进入容器终端
docker exec -it <container_id> /bin/bash
# 删除容器
docker rm <container_id>
# 查看容器日志
docker logs <container_id>
5. 高级应用
Dockerfile 示例
# 基础镜像
FROM python:3.9-slim
# 设置工作目录
WORKDIR /app
# 复制文件
COPY requirements.txt .
COPY app.py .
# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt
# 暴露端口
EXPOSE 5000
# 启动命令
CMD ["python", "app.py"]
Docker Compose
docker-compose.yml
示例:
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/app
redis:
image: "redis:alpine"
常用命令:
# 启动服务
docker-compose up -d
# 停止服务
docker-compose down
# 查看服务状态
docker-compose ps
6. 数据管理
数据卷
# 创建数据卷
docker volume create my_vol
# 使用数据卷
docker run -v my_vol:/data --name vol_container ubuntu
目录挂载
# 挂载主机目录
docker run -v /host/path:/container/path nginx
7. 网络配置
基础网络
# 创建自定义网络
docker network create my_network
# 容器加入网络
docker run --network=my_network --name app1 my_image
docker run --network=my_network --name app2 my_image
网络类型
网络模式 | 说明 |
---|---|
bridge(默认) | 通过虚拟网桥进行NAT通信 |
host | 直接使用主机网络 |
none | 无网络配置 |
8. 常见问题
Q1: 如何清理无用资源?
# 删除所有停止的容器
docker container prune
# 删除未被使用的镜像
docker image prune -a
# 删除所有无用资源
docker system prune
Q2: 容器端口无法访问?
- 检查防火墙设置
- 确认端口映射正确:
docker port <container_id>
- 验证应用是否监听正确地址(0.0.0.0 vs 127.0.0.1)
Q3: 容器内无法执行命令?
- 确认容器处于运行状态
- 使用交互式模式:
docker exec -it <container_id> /bin/bash
更多官方文档参考:Docker Documentation
评论 (0)