Skip to content

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

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: 让容器在后台运行(即分离模式)。
  • --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 start 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

3 网络操作

4 数据卷操作

5 其他

docker inspect

docker inspect

以 JSON 格式返回有关容器、镜像、网络或数据卷等的详细信息。

sh
# --type container|image|node|network|secret|service|volume|task|plugin
docker inspect --type=类型 ID或名称

# 示例
docker inspect --type=container 5348