Docker 常用命令
镜像命令
镜像管理
bash
# 列出本地镜像
docker images
docker image ls
# 列出所有镜像(包括中间层)
docker images -a
# 查看镜像详情
docker image inspect nginx:latest
# 查看镜像历史
docker history nginx:latest1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
拉取和推送
bash
# 拉取镜像
docker pull nginx:latest
docker pull nginx:1.25-alpine
# 登录镜像仓库
docker login
docker login registry.example.com
# 推送镜像
docker push myrepo/myapp:v1
# 从 tar 文件导入镜像
docker load -i nginx.tar
docker load < nginx.tar
# 导出镜像到 tar 文件
docker save -o nginx.tar nginx:latest
docker save nginx:latest > nginx.tar1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
构建镜像
bash
# 构建镜像
docker build -t myapp:v1 .
# 指定 Dockerfile
docker build -f Dockerfile.prod -t myapp:v1 .
# 构建时传递参数
docker build --build-arg VERSION=1.0 -t myapp:v1 .
# 构建时不使用缓存
docker build --no-cache -t myapp:v1 .
# 查看构建历史
docker build --progress=plain -t myapp:v1 .1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
容器命令
创建和启动
bash
# 创建并启动容器
docker create nginx
docker run nginx
docker run -d nginx # 后台运行
# 创建并进入交互式容器
docker run -it ubuntu bash
# 启动/停止/重启
docker start nginx
docker stop nginx
docker restart nginx
# 强制停止
docker kill nginx1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
查看容器
bash
# 列出运行中的容器
docker ps
# 列出所有容器
docker ps -a
# 列出最新容器
docker ps -l
# 格式化输出
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}\t{{.Ports}}"
# 查看容器详细信息
docker inspect my-nginx
# 查看容器进程
docker top my-nginx
# 查看资源使用
docker stats
docker stats my-nginx # 单个容器
# 查看端口映射
docker port my-nginx1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
进入容器
bash
# 执行命令(推荐)
docker exec my-nginx ls /var/log/nginx
docker exec -it my-nginx bash
# 进入容器(attach 会暂停主进程)
docker attach my-nginx1
2
3
4
5
6
2
3
4
5
6
日志操作
bash
# 查看日志
docker logs my-nginx
# 实时跟踪
docker logs -f my-nginx
# 最近 N 行
docker logs --tail 100 my-nginx
# 时间范围
docker logs --since "2024-01-01"
docker logs --since 30m my-nginx
# 过滤日志
docker logs my-nginx 2>&1 | grep ERROR1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
容器生命周期
bash
# 暂停/恢复容器
docker pause my-nginx
docker unpause my-nginx
# 重命名容器
docker rename old-name new-name
# 复制文件
docker cp index.html my-nginx:/usr/share/nginx/html/
docker cp my-nginx:/var/log/nginx/access.log ./
# 更新容器配置
docker update --memory 512m my-nginx
docker update --cpus 2 my-nginx1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
删除容器
bash
# 删除已停止的容器
docker rm my-nginx
# 强制删除运行中的容器
docker rm -f my-nginx
# 删除所有已停止的容器
docker container prune
# 按名称模式删除
docker rm $(docker ps -a -f name=nginx*)1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
数据卷命令
bash
# 创建数据卷
docker volume create mydata
# 列出数据卷
docker volume ls
# 查看数据卷详情
docker volume inspect mydata
# 删除未使用的数据卷
docker volume prune
# 删除指定数据卷
docker volume rm mydata1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
网络命令
bash
# 列出网络
docker network ls
# 查看网络详情
docker network inspect bridge
# 创建网络
docker network create mynet
# 连接容器到网络
docker network connect mynet my-nginx
# 断开容器网络
docker network disconnect mynet my-nginx
# 删除网络
docker network rm mynet
# 删除未使用的网络
docker network prune1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Compose 命令
bash
# 启动服务
docker-compose up
docker-compose up -d # 后台运行
# 停止服务
docker-compose down
# 停止并删除数据卷
docker-compose down -v
# 重新构建镜像
docker-compose up --build
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -f
# 执行命令
docker-compose exec web python manage.py migrate
# 扩展服务
docker-compose up -d --scale worker=31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
系统命令
bash
# 查看 Docker 信息
docker info
# 查看 Docker 版本
docker version
# 检查 Docker 状态
docker system df # 磁盘使用
# 清理资源
docker system prune # 清理未使用的容器、网络、悬空镜像
docker system prune -a # 清理所有未使用的镜像
docker system prune --volumes # 清理数据卷
# 事件监控
docker events
# 登录到 Registry
docker login
docker logout1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Dockerfile 常用指令
dockerfile
# 基础镜像
FROM python:3.12-slim
# 维护者
MAINTAINER name email@example.com
# 复制文件
COPY ./app /app
COPY requirements.txt .
# 设置工作目录
WORKDIR /app
# 运行命令
RUN pip install -r requirements.txt
RUN apt-get update && apt-get install -y nginx
# 环境变量
ENV APP_ENV=production
ENV PORT=8080
# 暴露端口
EXPOSE 8080
# 数据卷
VOLUME ["/data"]
# 用户
USER www-data
# 启动命令
CMD ["python", "app.py"]
ENTRYPOINT ["python", "app.py"]1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
常见问题排查
bash
# 容器无法启动
docker logs my-nginx
docker inspect my-nginx
# 端口冲突
docker ps | grep 80
netstat -tlnp | grep 80
# 权限问题
docker exec -it my-nginx ls -la /app
docker run --privileged myapp
# 网络问题
docker network inspect bridge
docker exec -it my-nginx ping host.docker.internal1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
命令速查表
| 操作 | 命令 |
|---|---|
| 拉取镜像 | docker pull nginx |
| 构建镜像 | docker build -t myapp:v1 . |
| 运行容器 | docker run -d -p 80:80 nginx |
| 查看容器 | docker ps -a |
| 进入容器 | docker exec -it my-nginx bash |
| 查看日志 | docker logs -f my-nginx |
| 停止容器 | docker stop my-nginx |
| 删除容器 | docker rm my-nginx |
| 清理资源 | docker system prune |
[[返回 Docker 首页|docker/index]]