Docker 常用命令
Docker
登录
退出登录
1 镜像操作
1.1 搜索仓库镜像
bash
# 用法
docker search [OPTIONS] TERM
# 示例
docker search nginx

Preview
1.2 拉取镜像至本地
bash
# 用法
docker image pull [OPTIONS] NAME[:TAG|@DIGEST]
# 别名
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
# 示例
docker pull nginx

Preview
输出结果最后一行给出了镜像的完整名称,即: docker.io/library/nginx:latest
- docker.io:表示仓库地址,默认地址是 Docker Hub(docker.io)。
- library/nginx:表示仓库名,是两段式名称,即 <用户名>/<软件名>。对于 Docker Hub,如果不给出用户名,则默认为 library,也就是官方镜像。
- latest:表示标签。
1.3 列出本地镜像
bash
# 用法
docker image ls [OPTIONS] [REPOSITORY[:TAG]]
# 别名
docker image list [OPTIONS] [REPOSITORY[:TAG]]
docker images [OPTIONS] [REPOSITORY[:TAG]]
# 示例
docker images

Preview
1.4 删除本地镜像
bash
# 用法
docker image rm [OPTIONS] IMAGE [IMAGE...]
# 别名
docker image remove [OPTIONS] IMAGE [IMAGE...]
docker rmi [OPTIONS] IMAGE [IMAGE...]
# 示例
docker rmi 5d48b5a661a1

Preview
1.5 保存镜像
用于将一个或多个 Docker 镜像保存为一个 tar 归档文件。这可以方便地将镜像从一个主机导出,并在其他主机上进行加载,或者备份镜像。
bash
# 用法
docker image save [OPTIONS] IMAGE [IMAGE...]
# 别名
docker save [OPTIONS] IMAGE [IMAGE...]
# 示例
docker save -o mynginx.tar mynginx:v1

Preview
1.6 加载镜像
用于从 .tar 归档文件中导入 Docker 镜像的命令。通常,docker load
与 docker save
配合使用。docker save
命令用于将镜像保存为 tar 文件,而 docker load
用于从这些 tar 文件中加载镜像到 Docker 引擎中。
bash
# 用法
docker image load [OPTIONS]
# 别名
docker load [OPTIONS]
# 示例
docker load -i mynginx.tar

Preview
2 容器操作
2.1 创建容器/运行镜像
bash
# 用法
docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]
# 别名
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
示例1
直接运行会阻塞控制台。

Preview
此时如果想做其他操作,只能另开一个终端。因为执行运行命令时没有设置容器名称,这里的容器名称 strange_roentgen 是随机生成的。

Preview
示例2
启动一个交互式的 Docker 容器并运行 Nginx。
bash
docker run -d --name nginx -p 80:80 nginx
docker run
: 创建并运行一个新的容器实例。-d
: daemon 的简写,让容器在后台运行(即分离模式),不阻塞控制台。--name nginx
: 给容器指定一个名称“nginx”,以便于后续操作。-p 80:80
: (宿主机端口:容器端口),将宿主机的 80 端口映射到容器的 80 端口,使外部可以通过宿主机的 80 端口访问容器中的 Nginx 服务。nginx
: 指定要使用的镜像,这里是官方的 Nginx 镜像。
总结来说,这个命令会启动一个名为“nginx”的容器,运行 Nginx 服务,并将容器的 80 端口映射到宿主机的 80 端口。
示例3
启动一个 Docker 容器并运行 Bash shell。
bash
docker run -it --rm nginx bash
docker run
: 创建并运行一个新的容器实例。-it
: 结合了 -i(保持 STDIN 打开)和 -t(分配一个伪终端),允许你与容器进行交互。--rm
: 在容器停止后自动删除容器。nginx
: 指定要使用的镜像,这里是官方的 Nginx 镜像。bash
: 容器启动时运行的命令,这里是启动 Bash shell。
总结来说,这个命令会启动一个基于 Nginx 镜像的容器,并在容器中启动一个 Bash shell,以便你可以在其中执行命令和进行交互。容器停止后会被自动删除。

Preview
2.2 查看容器列表
bash
# 用法
docker container ls [OPTIONS]
# 别名
docker container list [OPTIONS]
docker container ps [OPTIONS]
docker ps [OPTIONS]
# 示例1
# 列出正在运行的容器
docker ps
# 示例2
# 列出所有容器
docker ps -a
2.3 停止容器
bash
# 用法
docker container stop [OPTIONS] CONTAINER [CONTAINER...]
# 别名
docker stop [OPTIONS] CONTAINER [CONTAINER...]
# 示例
# 停止一个正在运行的容器
docker stop 73cd83b56a84

Preview
2.4 启动已停止的容器
bash
# 用法
docker container start [OPTIONS] CONTAINER [CONTAINER...]
# 别名
docker start [OPTIONS] CONTAINER [CONTAINER...]
# 示例
# 启动一个已停止的容器
docker start 73cd83b56a84

Preview
2.5 重启容器
bash
# 用法
docker container restart [OPTIONS] CONTAINER [CONTAINER...]
# 别名
docker restart [OPTIONS] CONTAINER [CONTAINER...]
# 示例
# 重启一个容器(无论容器当前状态是正在运行还是已停止)
docker restart 73cd83b56a84

Preview
2.6 实时查看容器资源占用情况
bash
# 用法
docker container stats [OPTIONS] [CONTAINER...]
# 别名
docker stats [OPTIONS] [CONTAINER...]
# 示例
docker restart 73cd83b56a84

Preview
2.7 查看容器日志
bash
# 用法
docker container logs [OPTIONS] CONTAINER
# 别名
docker logs [OPTIONS] CONTAINER
# 示例
docker restart 73cd83b56a84

Preview
2.8 进入容器
在一个正在运行的容器中执行命令。
bash
# 用法
docker container exec [OPTIONS] CONTAINER COMMAND [ARG...]
# 别名
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
# 示例
docker exec -it nginx bash

Preview
2.9 删除已停止的容器
bash
# 用法
docker container rm [OPTIONS] CONTAINER [CONTAINER...]
# 别名
docker container remove [OPTIONS] CONTAINER [CONTAINER...]
docker rm [OPTIONS] CONTAINER [CONTAINER...]
# 示例1
# 删除一个已停止的容器
docker rm 73c
# 示例2
# 强制删除,包括运行中的容器
docker rm -f 73c

Preview
2.10 将容器的当前状态保存为一个新的镜像
命令用于将容器的当前状态保存为一个新的镜像。执行该命令时,可以指定容器 ID 和新镜像的名称,最终会创建一个新的镜像,包含容器的所有文件变化。你可以用它来保存对容器做的修改,并在未来创建新的容器。
bash
# 用法
docker container commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
# 别名
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
# 示例
docker commit -m "修改首页" mynginx mynginx:v1

Preview
3 网络操作
4 数据卷操作
5 其他
docker inspect
以 JSON 格式返回有关容器、镜像、网络或数据卷等的详细信息。
sh
# --type container|image|node|network|secret|service|volume|task|plugin
docker inspect --type=类型 ID或名称
# 示例
docker inspect --type=container 5348