Post

Docker 基础命令

Docker

Docker 基本使用

  1. docker run: 运行一个容器

这是启动 Docker 容器最基本的命令。它会从指定的镜像创建一个新的容器,并在其中运行指定的命令。例如:

1
docker run ubuntu /bin/bash

这将使用 ubuntu 镜像创建一个新的容器,并在其中启动 bash shell。

  1. docker ps: 列出当前正在运行的容器

此命令列出所有正在运行的 Docker 容器。例如:

1
docker ps

可以使用 -a 选项来列出所有容器,包括已停止的容器。

  1. docker stop: 停止一个或多个正在运行的容器

此命令用于停止一个或多个正在运行的容器。例如:

1
docker stop <container-id>

其中 <container-id> 是要停止的容器 ID。

  1. docker rm: 删除一个或多个容器

此命令用于删除一个或多个容器。例如:

1
docker rm <container-id>

其中 <container-id> 是要删除的容器 ID。

  1. docker images: 列出所有本地镜像

此命令列出本地 Docker 主机上的所有镜像。例如:

1
docker images
  1. docker pull: 从 Docker 镜像仓库中拉取镜像

此命令用于从 Docker 镜像仓库中获取镜像。例如:

1
docker pull ubuntu

这将获取最新的 ubuntu 镜像。

  1. docker push: 将本地镜像推送到 Docker 镜像仓库中

此命令用于将本地镜像推送到 Docker 镜像仓库中。例如:

1
docker push my-image

其中 my-image 是要推送到仓库中的镜像名称。

  1. docker build: 使用 Dockerfile 构建一个新的镜像

此命令用于使用 Dockerfile 创建一个新的镜像。例如:

1
docker build -t my-image .

这将在当前目录中查找名为 Dockerfile 的文件,并使用它来构建名为 my-image 的新镜像。

  1. docker exec: 在正在运行的容器中执行命令

此命令可以在正在运行的容器中执行任意命令。例如:

1
docker exec <container-id> ls

其中 <container-id> 是要执行命令的容器 ID,ls 是要执行的命令。

  1. docker network: 管理 Docker 网络

此命令用于管理 Docker 网络。例如:

1
docker network create my-network

这将创建一个名为 my-network 的新网络。您可以使用其他命令向该网络添加容器等。

希望这些示例能够帮助您更好地了解 Docker 命令的用途

docker 问题排查

以下是一些常见的 Docker 管理和排查问题命令:

  1. docker ps: 列出当前正在运行的容器

此命令可用于查看当前正在运行的 Docker 容器。

  1. docker logs <container-id>: 查看容器的日志输出

此命令可用于查看容器的日志输出,以帮助您诊断问题。使用 <container-id> 替换要查看其日志的容器的 ID。

  1. docker images: 列出本地镜像

此命令可用于列出所有在本地 Docker 主机上可用的镜像。

  1. docker inspect <container-id>: 获取有关容器的详细信息

此命令可用于获取有关特定容器的详细信息,包括 IP 地址、端口映射等。

  1. docker stop <container-id>: 停止正在运行的容器

此命令可用于停止正在运行的 Docker 容器。使用 <container-id> 替换要停止的容器的 ID。

  1. docker rm <container-id>: 删除容器

此命令可用于删除指定的 Docker 容器。使用 <container-id> 替换要删除的容器的 ID。

  1. docker exec -it <container-id> /bin/bash: 进入正在运行的容器并打开 shell

此命令可用于进入正在运行的 Docker 容器并打开 shell。使用 -it 选项启动交互式会话。使用 <container-id> 替换要进入的容器的 ID。

  1. docker build -t <image-name> .: 使用 Dockerfile 构建一个新的镜像

此命令可用于使用 Dockerfile 构建新的 Docker 镜像,并为其指定名称。使用 -t 选项指定镜像名称。

  1. docker network create <network-name>: 创建一个新的 Docker 网络

此命令可用于创建一个新的 Docker 网络,以在该网络中运行容器。

高级命令

  1. docker stats: 显示所有正在运行的容器的 CPU、内存和网络使用情况。

  2. docker network: 用于管理 Docker 网络,包括创建、删除、连接和断开连接等操作。

  3. docker volume: 用于管理 Docker 卷,包括创建、删除、挂载和卸载等操作。

  4. docker top: 显示一个或多个容器的进程列表。

  5. docker attach: 连接到正在运行的容器,并输入命令或查看控制台输出。

  6. docker exec: 在正在运行的容器中执行命令。与 docker attach 不同,docker exec 不会连接到容器的标准输入和标准输出。

  7. docker commit: 将容器保存为新的镜像。

  8. docker export: 导出容器的文件系统内容为 tar 文件。

  9. docker import: 从 tar 文件导入内容创建镜像。

docker 使用例子

以下是一些使用 Docker 命令的示例:

  1. docker images: 列出所有可用的本地镜像。
1
2
3
4
5
$ 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         542MB
  1. docker ps: 列出所有正在运行的容器。
1
2
3
4
$ 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-container
  1. docker stop <container-id>: 停止正在运行的容器。
1
$ docker stop 8b64c3da13b2
  1. docker rm <container-id>: 删除已停止的容器。
1
$ docker rm 8b64c3da13b2
  1. docker restart <container-id>: 重启正在运行的容器。
1
$ docker restart 56b8cfaae72d
  1. docker start <container-id>: 启动已停止的容器。
1
$ docker start 56b8cfaae72d
  1. docker rmi <image-name>: 删除本地的镜像。
1
$ docker rmi mysql
  1. docker logs <container-id>: 查看容器的日志输出。
1
$ docker logs 56b8cfaae72d
  1. docker login: 登录到 Docker Hub。
1
$ docker login
  1. docker tag <old-image-name> <new-image-name>:<tag>: 创建一个新的标记为 <new-image-name>:<tag> 的镜像。
1
$ docker tag my-nginx-container my-docker-registry.com/my-nginx-container:v1.0.0
  1. docker push <new-image-name>:<tag>: 将镜像推送到 Docker 镜像仓库。
1
 $ docker push my-docker-registry.com/my-nginx-container:v1.0.0
  1. docker pull <image-name>:<tag>: 从 Docker 镜像仓库中拉取镜像。
1
$ docker pull my-docker-registry.com/my-nginx-container:v1.0.0

这些是一些使用 Docker 命令的示例。根据您的需求,可能需要添加其他选项和参数来定制每个命令的行为。

This post is licensed under CC BY 4.0 by the author.