Docker 常用命令与对象速查
Docker 命令速查
先运行
docker context show,把占位符替换为明确对象。
1. 系统与镜像
| 目标 | 命令 |
|---|---|
| Client/Server | docker version |
| 系统信息 | docker info |
| 磁盘 | docker system df -v |
| 事件 | docker events --since 30m |
| 拉取 | docker pull IMAGE:TAG |
| 镜像列表 | docker image ls --digests |
| 检查/历史 | docker image inspect IMAGE / docker history IMAGE |
| 标签/推送 | docker tag SOURCE TARGET / docker push TARGET |
| 保存/加载 | docker image save -o image.tar IMAGE / docker image load -i image.tar |
| 多平台清单 | docker buildx imagetools inspect IMAGE |
2. 容器
| 目标 | 命令 |
|---|---|
| 列表 | docker ps -a |
| 后台运行 | docker run -d --name NAME IMAGE |
| 一次性 Shell | docker run --rm -it IMAGE sh |
| 启停/重启 | docker start C / docker stop C / docker restart --timeout 30 C |
| 进入 | docker exec -it C sh |
| 日志 | docker logs --tail 100 -f C |
| 状态/进程 | docker inspect C / docker top C |
| 资源 | docker stats --no-stream C |
| 复制 | docker cp C:/path ./path |
| 删除已停止容器 | docker rm C |
3. 网络与卷
| 目标 | 命令 |
|---|---|
| 网络列表/创建 | docker network ls / docker network create app-net |
| 网络检查 | docker network inspect app-net |
| 连接/断开 | docker network connect app-net C / docker network disconnect app-net C |
| 端口 | docker port C |
| 卷列表/创建 | docker volume ls / docker volume create app-data |
| 卷检查 | docker volume inspect app-data |
| 查引用 | docker ps -a --filter volume=app-data |
| 只读查看 | docker run --rm -v app-data:/data:ro alpine ls -la /data |
4. Compose
| 目标 | 命令 |
|---|---|
| 渲染/验证 | docker compose config |
| 拉取/启动 | docker compose pull / docker compose up -d |
| 状态/日志 | docker compose ps -a / docker compose logs -f |
| 进入/任务 | docker compose exec SERVICE sh / docker compose run --rm SERVICE CMD |
| 扩容 | docker compose up -d --scale worker=3 |
| 停止/删除 | docker compose stop / docker compose down |
危险:
docker compose down --volumes会删除项目卷。
5. Buildx
| 目标 | 命令 |
|---|---|
| Dockerfile 检查 | docker build --check . |
| 普通构建 | docker build --pull -t IMAGE:TAG . |
| Builder | docker buildx ls / docker buildx inspect --bootstrap |
| 加载本地 | docker buildx build --load -t IMAGE:TAG . |
| 多平台推送 | docker buildx build --platform linux/amd64,linux/arm64 --push -t IMAGE:TAG . |
| Cache | docker buildx du --verbose |
| Bake 预览 | docker buildx bake --print |
6. 过滤与排障
docker ps --filter status=exited
docker ps --filter health=unhealthy
docker image ls --filter dangling=true
docker ps --format 'table {{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}'
docker context show
docker version
docker info
docker ps -a --no-trunc
docker inspect CONTAINER
docker logs --since 30m --timestamps CONTAINER
docker stats --no-stream CONTAINER
docker system df -v
sudo journalctl -u docker --since '30 min ago' --no-pager7. 危险命令
docker rm -f CONTAINER
docker image prune -a
docker volume prune
docker system prune -a --volumes
docker compose down --volumes执行前必须确认 Context、对象、备份与回滚。不要手工删除 Docker data-root 内的 overlay/containerd/日志文件。
8. 官方参考
基础命令逐条解释与原示例输出
Docker 基础命令
Docker
Docker 基本使用
docker run: 运行一个容器
这是启动 Docker 容器最基本的命令。它会从指定的镜像创建一个新的容器,并在其中运行指定的命令。例如:
docker run --rm -it ubuntu /bin/bash这将使用 ubuntu 镜像创建一个新的容器,并在其中启动 bash shell。
docker ps: 列出当前正在运行的容器
此命令列出所有正在运行的 Docker 容器。例如:
docker ps可以使用 -a 选项来列出所有容器,包括已停止的容器。
docker stop: 停止一个或多个正在运行的容器
此命令用于停止一个或多个正在运行的容器。例如:
docker stop <container-id>其中 <container-id> 是要停止的容器 ID。
docker rm: 删除一个或多个容器
此命令用于删除一个或多个容器。例如:
docker rm <container-id>其中 <container-id> 是要删除的容器 ID。
docker images: 列出所有本地镜像
此命令列出本地 Docker 主机上的所有镜像。例如:
docker imagesdocker pull: 从 Docker 镜像仓库中拉取镜像
此命令用于从 Docker 镜像仓库中获取镜像。例如:
docker pull ubuntu这会解析当时的 ubuntu:latest 标签;它不是不可变版本,也不保证应用兼容。
docker push: 将本地镜像推送到 Docker 镜像仓库中
此命令用于将本地镜像推送到 Docker 镜像仓库中。例如:
docker push my-image其中 my-image 是要推送到仓库中的镜像名称。
docker build: 使用 Dockerfile 构建一个新的镜像
此命令用于使用 Dockerfile 创建一个新的镜像。例如:
docker build -t my-image .这将在当前目录中查找名为 Dockerfile 的文件,并使用它来构建名为 my-image 的新镜像。
docker exec: 在正在运行的容器中执行命令
此命令可以在正在运行的容器中执行任意命令。例如:
docker exec <container-id> ls其中 <container-id> 是要执行命令的容器 ID,ls 是要执行的命令。
docker network: 管理 Docker 网络
此命令用于管理 Docker 网络。例如:
docker network create my-network这将创建一个名为 my-network 的新网络。您可以使用其他命令向该网络添加容器等。
希望这些示例能够帮助您更好地了解 Docker 命令的用途
docker 问题排查
以下是一些常见的 Docker 管理和排查问题命令:
docker ps: 列出当前正在运行的容器
此命令可用于查看当前正在运行的 Docker 容器。
docker logs <container-id>: 查看容器的日志输出
此命令可用于查看容器的日志输出,以帮助您诊断问题。使用 <container-id> 替换要查看其日志的容器的 ID。
docker images: 列出本地镜像
此命令可用于列出所有在本地 Docker 主机上可用的镜像。
docker inspect <container-id>: 获取有关容器的详细信息
此命令可用于获取有关特定容器的详细信息,包括 IP 地址、端口映射等。
docker stop <container-id>: 停止正在运行的容器
此命令可用于停止正在运行的 Docker 容器。使用 <container-id> 替换要停止的容器的 ID。
docker rm <container-id>: 删除容器
此命令可用于删除指定的 Docker 容器。使用 <container-id> 替换要删除的容器的 ID。
docker exec -it <container-id> /bin/bash: 进入正在运行的容器并打开 shell
此命令可用于进入正在运行的 Docker 容器并打开 shell。使用 -it 选项启动交互式会话。使用 <container-id> 替换要进入的容器的 ID。
docker build -t <image-name> .: 使用 Dockerfile 构建一个新的镜像
此命令可用于使用 Dockerfile 构建新的 Docker 镜像,并为其指定名称。使用 -t 选项指定镜像名称。
docker network create <network-name>: 创建一个新的 Docker 网络
此命令可用于创建一个新的 Docker 网络,以在该网络中运行容器。
高级命令
docker stats: 显示所有正在运行的容器的 CPU、内存和网络使用情况。docker network: 用于管理 Docker 网络,包括创建、删除、连接和断开连接等操作。docker volume: 用于管理 Docker 卷,包括创建、删除、挂载和卸载等操作。docker top: 显示一个或多个容器的进程列表。docker attach: 连接到正在运行的容器,并输入命令或查看控制台输出。docker exec: 在正在运行的容器中执行命令。与docker attach不同,docker exec创建一个新进程并可连接其标准流;attach 连接的是容器已有主进程,不会另开 Shell。docker commit: 将容器保存为新的镜像。docker export: 导出容器的文件系统内容为 tar 文件。docker import: 从 tar 文件导入内容创建镜像。
docker 使用例子
以下保留原示例输出,时间、ID 和大小是旧示意,不是本轮执行记录。tag 的 SOURCE 须是镜像引用,不能填容器名。
docker images: 列出所有可用的本地镜像。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 4c108a37151f 6 days ago 72.7MB
nginx latest bd3d43637225 2 weeks ago 133MB
mysql latest 978e8745d1f9 2 weeks ago 542MBdocker ps: 列出所有正在运行的容器。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8b64c3da13b2 nginx "nginx -g 'daemon of…" 2 hours ago Up 2 hours 80/tcp my-nginx-container
56b8cfaae72d mysql "docker-entrypoint.s…" 3 hours ago Up 3 hours 3306/tcp my-mysql-containerdocker stop <container-id>: 停止正在运行的容器。
$ docker stop 8b64c3da13b2docker rm <container-id>: 删除已停止的容器。
$ docker rm 8b64c3da13b2docker restart <container-id>: 重启正在运行的容器。
$ docker restart 56b8cfaae72ddocker start <container-id>: 启动已停止的容器。
$ docker start 56b8cfaae72ddocker rmi <image-name>: 删除本地的镜像。
$ docker rmi mysqldocker logs <container-id>: 查看容器的日志输出。
$ docker logs 56b8cfaae72ddocker login: 登录到 Docker Hub。
$ docker logindocker tag <old-image-name> <new-image-name>:<tag>: 创建一个新的标记为<new-image-name>:<tag>的镜像。
$ docker tag nginx:latest my-docker-registry.com/my-nginx-container:v1.0.0docker push <new-image-name>:<tag>: 将镜像推送到 Docker 镜像仓库。
$ docker push my-docker-registry.com/my-nginx-container:v1.0.0docker pull <image-name>:<tag>: 从 Docker 镜像仓库中拉取镜像。
$ docker pull my-docker-registry.com/my-nginx-container:v1.0.0这些是一些使用 Docker 命令的示例。根据您的需求,可能需要添加其他选项和参数来定制每个命令的行为。
继续阅读
- 知识专题
- 知识专题
- 知识专题