Docker 指令集合指南

Simon Lv2

1. 基础命令

版本和信息

# 查看 Docker 版本
docker --version
docker version

# 查看系统信息
docker info

# 查看帮助
docker --help
docker <命令> --help

2. 镜像管理

查看和搜索镜像

# 列出本地镜像
docker images
docker image ls

# 搜索镜像
docker search nginx
docker search mysql

# 查看镜像详细信息
docker inspect nginx:latest

拉取和删除镜像

# 拉取镜像
docker pull nginx
docker pull nginx:1.20
docker pull ubuntu:20.04

# 删除镜像
docker rmi nginx
docker rmi nginx:1.20
docker image rm nginx

# 删除所有未使用的镜像
docker image prune
docker image prune -a

构建镜像

# 从 Dockerfile 构建
docker build -t myapp:1.0 .
docker build -t myapp:latest -f Dockerfile.prod .

# 查看构建历史
docker history myapp:1.0

3. 容器管理

运行容器

# 基本运行
docker run hello-world
docker run nginx
docker run -d nginx # 后台运行

# 带参数运行
docker run -d -p 8080:80 nginx # 端口映射
docker run -d -p 8080:80 --name my-nginx nginx # 指定容器名
docker run -it ubuntu:20.04 /bin/bash # 交互式运行

# 挂载目录
docker run -d -p 8080:80 -v /host/path:/container/path nginx
docker run -d -p 8080:80 -v $(pwd):/usr/share/nginx/html nginx

# 环境变量
docker run -d -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0
docker run -d --env-file .env mysql:8.0

查看容器

# 列出运行中的容器
docker ps
docker container ls

# 列出所有容器(包括停止的)
docker ps -a
docker container ls -a

# 查看容器详细信息
docker inspect container_name
docker inspect container_id

容器操作

# 启动/停止/重启容器
docker start container_name
docker stop container_name
docker restart container_name

# 暂停/恢复容器
docker pause container_name
docker unpause container_name

# 删除容器
docker rm container_name
docker rm -f container_name # 强制删除运行中的容器

# 删除所有停止的容器
docker container prune

进入容器

# 进入运行中的容器
docker exec -it container_name /bin/bash
docker exec -it container_name sh

# 以 root 用户进入
docker exec -it -u root container_name /bin/bash

# 在容器中执行命令
docker exec container_name ls -la
docker exec container_name cat /etc/hosts

4. 日志和监控

查看日志

# 查看容器日志
docker logs container_name
docker logs -f container_name # 实时查看
docker logs --tail 100 container_name # 最近100行
docker logs --since 2024-01-01 container_name # 指定时间后的日志

监控资源

# 查看容器资源使用情况
docker stats
docker stats container_name

# 查看容器进程
docker top container_name

5. 网络管理

网络操作

# 列出网络
docker network ls

# 创建网络
docker network create mynetwork
docker network create --driver bridge mynetwork

# 删除网络
docker network rm mynetwork

# 查看网络详情
docker network inspect mynetwork

# 连接容器到网络
docker network connect mynetwork container_name
docker network disconnect mynetwork container_name

6. 数据卷管理

卷操作

# 列出数据卷
docker volume ls

# 创建数据卷
docker volume create myvolume

# 删除数据卷
docker volume rm myvolume

# 查看数据卷详情
docker volume inspect myvolume

# 清理未使用的数据卷
docker volume prune

7. Docker Compose

基本操作

# 启动服务
docker-compose up
docker-compose up -d # 后台运行
docker-compose up --build # 重新构建并启动

# 停止和删除
docker-compose down
docker-compose down -v # 同时删除数据卷

# 查看服务状态
docker-compose ps
docker-compose logs
docker-compose logs -f service_name

# 重启服务
docker-compose restart
docker-compose restart service_name

# 执行命令
docker-compose exec service_name /bin/bash

8. 清理命令

系统清理

# 清理所有未使用的资源
docker system prune

# 清理所有未使用的资源(包括镜像)
docker system prune -a

# 查看磁盘使用情况
docker system df

# 分别清理
docker container prune # 清理停止的容器
docker image prune # 清理未使用的镜像
docker volume prune # 清理未使用的数据卷
docker network prune # 清理未使用的网络

9. 实用技巧

常用组合命令

# 停止所有容器
docker stop $(docker ps -q)

# 删除所有容器
docker rm $(docker ps -aq)

# 删除所有镜像
docker rmi $(docker images -q)

# 查看容器 IP 地址
docker inspect container_name | grep IPAddress

# 复制文件到容器
docker cp file.txt container_name:/path/to/destination

# 从容器复制文件
docker cp container_name:/path/to/file.txt ./

别名设置

# 在 ~/.bashrc 或 ~/.zshrc 中添加
alias dps='docker ps'
alias dpa='docker ps -a'
alias di='docker images'
alias dsp='docker system prune'
alias dcu='docker-compose up -d'
alias dcd='docker-compose down'

10. Dockerfile 常用指令

# 基础镜像
FROM ubuntu:20.04

# 维护者信息
LABEL maintainer="your-email@example.com"

# 设置工作目录
WORKDIR /app

# 复制文件
COPY . .
ADD file.tar.gz /app/

# 安装依赖
RUN apt-get update && apt-get install -y nodejs npm

# 设置环境变量
ENV NODE_ENV=production

# 暴露端口
EXPOSE 3000

# 设置用户
USER node

# 启动命令
CMD ["node", "app.js"]
ENTRYPOINT ["node"]
  • 标题: Docker 指令集合指南
  • 作者: Simon
  • 创建于 : 2025-09-11 11:44:39
  • 更新于 : 2025-09-11 11:48:01
  • 链接: https://www.simonicle.cn/2025/09/11/Docker 指令集合指南/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论