简述

  1. 通过 dockerfile 构造镜像
  2. 通过镜像文件构造容器
  3. 运行 docker 容器

常用命令

🧰 一、镜像相关(Images)

命令 说明
docker images 查看本地所有镜像
docker pull 镜像名:标签 从仓库下载镜像(如 docker pull nginx:alpine
docker build -t 镜像名:标签 . 用当前目录的 Dockerfile 构建镜像
docker rmi 镜像名或ID 删除镜像(-f 强制删除)
docker image ls docker images
docker image rm docker rmi

示例

1
2
3
4
docker pull ubuntu:20.04
docker build -t my-app:v1 .
docker images
docker rmi my-app:v1

📦 二、容器相关(Containers)

命令 说明
docker run [选项] 镜像名 [命令] 创建并启动一个容器(最常用!)
docker start 容器名/ID 启动已停止的容器
docker stop 容器名/ID 停止运行中的容器(优雅关闭)
docker restart 容器名/ID 重启容器
docker rm 容器名/ID 删除容器(先停止再删)
docker ps 查看正在运行的容器
docker ps -a 查看所有容器(包括已停止的)
docker logs 容器名 查看容器日志
docker exec -it 容器名 命令 进入正在运行的容器(如 sh

docker run 常用选项

  • -d:后台运行(detached)
  • -p 主机端口:容器端口:端口映射
  • --name 名字:给容器起个名字
  • -v /主机路径:/容器路径:挂载数据卷
  • -e KEY=VALUE:设置环境变量

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 启动一个 Nginx 容器,映射 8080 端口,名字叫 web
docker run -d -p 8080:80 --name web nginx:alpine

# 查看所有容器
docker ps -a

# 查看日志
docker logs web

# 进入容器
docker exec -it web sh

# 停止并删除
docker stop web
docker rm web

📁 三、数据卷与挂载(Volumes & Mounts)

命令 说明
docker volume ls 查看所有数据卷
docker volume create 卷名 创建数据卷
docker volume rm 卷名 删除数据卷
-v 卷名:/容器路径 挂载数据卷
-v /主机路径:/容器路径 挂载主机目录(开发常用)

示例

1
2
3
4
5
# 挂载本地代码到容器,适合开发
docker run -d -p 3000:3000 -v D:\myapp:/app my-node-app

# 使用命名卷存储数据库
docker run -d -v db-data:/var/lib/mysql mysql:8.0

🐳 四、系统管理

命令 说明
docker info 查看 Docker 系统信息
docker version 查看 Docker 版本
docker system df 查看镜像、容器、数据卷占用空间
docker system prune 清理未使用的资源(停止的容器、无用镜像等)
docker system prune -a 清理所有未使用的资源(更彻底)

🔍 五、调试与分析

命令 说明
docker inspect 容器/镜像名 查看详细配置(JSON 格式)
docker stats 实时查看容器资源使用(CPU、内存)
docker top 容器名 查看容器内运行的进程
docker history 镜像名 查看镜像每一层的构建历史

🧪 六、网络(Networking)

命令 说明
docker network ls 查看所有网络
docker network create 网络名 创建自定义网络
--network 网络名 运行容器时指定网络

默认网络:bridge, host, none


🧩 七、组合命令(常用快捷方式)

1
2
3
4
5
6
7
8
9
10
11
12
# 一键删除所有停止的容器
docker container prune

# 一键删除所有未使用的镜像
docker image prune

# 删除所有容器(先停止所有)
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)

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

⚠️ 慎用!确保没有重要数据


🎯 新手必记 5 条核心命令

命令 用途
docker run -d -p 80:80 --name web nginx 启动一个服务
docker ps 看哪些容器在运行
docker logs web 看日志,排查问题
docker exec -it web sh 进入容器调试
docker build -t myapp . 构建自己的镜像

Dockerfile 规则

指令 作用 示例
FROM 基础镜像(必须第一行)Docker Hub 寻找 FROM python:3.9-slim
COPY 复制文件到镜像中 COPY app.py /app/
ADD 类似 COPY,还能解压、下载 ADD http://xxx.zip /data/(少用)
WORKDIR 设置工作目录(类似 cd) WORKDIR /app
RUN 安装软件、执行命令 RUN pip install flask
EXPOSE 声明容器运行时开放的端口 EXPOSE 5000
CMD 容器启动后默认运行的命令 CMD ["python", "app.py"]