Docker - 命令



Docker 命令是用于与 Docker 对象(例如镜像、容器和网络)交互的指令,其中一些指令直接作用于 Docker 引擎本身。这些命令帮助开发人员和管理员构建、管理和部署容器化应用程序。

典型的命令包括用于创建和启动容器的 **docker run**、用于列出正在运行的容器的 **docker ps**、用于从 Dockerfile 创建镜像的 **docker build**、用于从注册表下载镜像的 **docker pull** 以及用于将镜像上传到注册表的 **docker push**。结合许多其他有用的命令,它们构成了处理 Docker 化应用程序整个生命周期的一整套实用程序。

Lifecycle of Dockerized Applications

Docker 容器命令

您可以使用 Docker 容器命令来管理容器的生命周期。使用这些命令,您可以创建、启动、停止、检查或删除容器。以下是五个最重要的容器命令:

**docker run** - 此命令允许您从指定的 Docker 镜像创建一个新容器并启动它。

$ docker run -d -p 80:80 --name mywebserver nginx 
docker run Command

上述命令将启动一个分离的 (-d) Nginx Web 服务器容器,将容器的端口 80 发布到主机上的端口 80 (-p 80:80),并将容器命名为 mywebserver。

**docker ps** - 如果您想列出所有正在运行的容器,可以使用以下命令。

$ docker ps
docker ps Command

此命令列出当前在您的系统上运行的所有容器。

**docker stop** - 要停止正在运行的容器,可以使用此命令。

$ docker stop mywebserver
docker stop Command

这将停止名为 mywebserver 的容器。

**docker rm** - 要删除已停止的容器,可以使用 docker rm 命令。

$ docker rm mywebserver
docker rm Command

这将删除名为 mywebserver 的已停止容器。

**docker logs** - 出于调试目的,如果您想显示容器的日志,可以使用 docker logs 命令。

$ docker logs mywebserver
docker logs Command

这将显示名为 mywebserver 的容器的日志,这对于调试很有用。

Docker 镜像命令

如果您想使用 Docker 镜像,Docker 提供了一组方便的命令来管理镜像。以下列出五个最重要的镜像命令以及示例:

**docker build** - 您可以使用此命令使用 Dockerfile 构建 Docker 镜像。Dockerfile 是一个文本文件,其中包含创建镜像及其多个层的指令。

$ docker build -t myimage 
docker build Command

上述命令将使用当前目录 (.) 中的 Dockerfile 构建名为 myimage 的镜像。

**docker pull** - 如果您想从 Docker 注册表(例如 Docker Hub)拉取镜像,可以使用 Docker pull 命令。

$ docker pull ubuntu:latest
docker pull Command

当您运行此命令时,它将从 Docker Hub 拉取官方 Ubuntu 镜像的最新版本。

**docker images** - 在使用 Docker 时,您经常会需要列出本地所有可用的 Docker 镜像。以下 Docker images 命令将帮助您做到这一点。

$ docker images
docker images Command

上述命令列出存储在您系统本地的所有 Docker 镜像。

**docker rmi** - 如果您想从您的机器上删除特定镜像,可以使用此命令。

$ docker rmi myimage
docker rmi Command

此命令将永久删除镜像 myimage。

**docker tag** - 此命令为镜像创建新标签。Docker 镜像中的标签用于识别和区分镜像的不同版本。

$ docker tag myimage myrepo/myimage:v1.0
docker tag Command

这将为镜像 myimage 创建一个新的标签 myrepo/myimage:v1.0。

Docker 卷命令

为了数据持久性和容器之间共享数据,可以使用 Docker 卷,因为它允许将数据独立于容器生命周期存储。要使用 Docker 卷,以下列出五个有用的命令以及示例:

**docker volume create** - 创建一个新的 Docker 卷。

$ docker volume create myvolume
docker volume create Command

**docker volume ls** - 列出系统上所有可用的卷。

$ docker volume ls
docker volume ls Command

**docker volume inspect** - 提供有关特定卷的详细信息。

$ docker volume inspect myvolume
docker volume inspect Command

**docker volume rm** - 删除指定的卷。

$ docker volume rm myvolume
docker volume rm Command

**docker volume prune** - 删除系统上所有未使用的卷,释放空间。

$ docker volume prune
docker volume prune Command

所有重要的 Docker 命令

以下是一个表格,总结了一些主要的 Docker 容器命令、它们的用例和示例:

命令 用例 示例
docker run 创建并启动一个新容器 docker run -it ubuntu bash
docker ps 列出正在运行的容器 docker ps
docker ps -a 列出所有容器(包括已停止的容器) docker ps -a
docker start 启动已停止的容器 docker start my_container
docker stop 停止正在运行的容器 docker stop my_container
docker restart 重启容器 docker restart my_container
docker rm 删除已停止的容器 docker rm my_container
docker rmi 删除镜像 docker rmi my_image
docker images 列出所有 Docker 镜像 docker images
docker pull 从注册表下载镜像 docker pull nginx
docker build 从 Dockerfile 构建镜像 docker build -t my_image
docker exec 在正在运行的容器中运行命令 docker exec -it my_container bash
docker logs 查看容器的日志 docker logs my_container
docker cp 在容器和本地文件系统之间复制文件/文件夹 docker cp my_container:/path/to/file /local/path
docker inspect 显示有关容器或镜像的详细信息 docker inspect my_container
docker network ls 列出所有 Docker 网络 docker network ls
docker network create 创建一个新的 Docker 网络 docker network create my_network
docker-compose up 使用 docker-compose.yml 文件创建并启动容器 docker-compose up
docker-compose down 停止并删除容器、网络、镜像和卷 docker-compose down
docker volume ls 列出所有 Docker 卷 docker volume ls
docker volume create 创建一个新的 Docker 卷 docker volume create my_volume
docker info 显示系统范围的信息 docker info
docker stats 显示容器资源使用情况统计信息的实时流 docker stats
docker attach 将本地标准输入、输出和错误流附加到容器 docker attach my_container

结论

总之,我们在本章中讨论的 Docker 命令对于有效管理和部署容器化应用程序至关重要。了解这些命令及其常见应用将有助于开发人员和管理员的日常工作,简化工作流程,确保持久性并优化资源消耗。

Docker 命令常见问题

1. docker run 和 docker start 之间有什么区别?

docker run 命令从镜像创建一个新容器并立即启动它。这结合了两个步骤:docker create,它创建了一个新容器,以及 docker start,它启动了一个已停止的容器。与此相反,docker start 用于启动之前已停止的现有容器。

2. 如何查看正在运行的 Docker 容器的日志?

您可以使用 docker logs 命令后跟容器的名称或 ID 来查看容器的日志。例如,docker logs mycontainer 将返回名为 mycontainer 的容器的日志。您可以使用标志 -f 紧跟在 docker logs 后,在添加新条目时实时打印日志。

3. 如何以分离模式运行 Docker 容器?

docker run 中的 -d 标志代表“分离”模式。当您以分离模式运行容器时,它将在后台运行,终端不会附加到其标准输入和输出。这意味着您可以在容器独立运行时继续使用终端执行其他任务。您可以使用 docker attach 命令重新连接到容器的输入和输出。

广告