Docker容器技术以其轻量级和便携性,成为现代应用部署的首选方案。通过 Docker,可以将应用及其依赖打包成一个独立的单元,轻松迁移至不同平台并无缝运行。然而,要充分利用 Docker 的优势,需要熟练掌握其命令行接口(CLI)。本文将带了解每个开发者和系统管理员都应掌握的 Docker 核心命令。
Docker 命令对于管理和交互 Docker 容器和镜像至关重要。它包括创建、运行、停止、删除容器以及从 Dockerfile 创建镜像。此外,它还允许执行列出活动容器、检查容器状态、在宿主机和容器之间传输文件以及管理 Docker 网络和 Docker 卷等任务。在实际使用中,掌握 Docker 命令是实现容器化应用、提高应用可移植性并简化跨平台部署的关键。
以下是一些常用的 Docker 命令使用方式:
// 运行容器
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
此命令从指定的镜像创建并启动一个新容器。
// 列出运行中的容器
docker ps
列出当前所有运行中的容器。
// 停止容器
docker stop CONTAINER_ID
停止指定 ID 或名称的运行中容器。
// 删除容器
docker rm CONTAINER_ID
从系统中移除已停止的容器。
// 拉取镜像
docker pull IMAGE[:TAG|@DIGEST]
从注册表(例如 Docker Hub)下载指定的镜像。
// 构建镜像
docker build [OPTIONS] PATH | URL | -
根据Dockerfile 中的指令构建新镜像。
// 列出镜像
docker images
列出本地系统上所有可用的镜像。
// 删除镜像
docker rmi IMAGE[:TAG|@DIGEST]
从本地系统中移除指定的镜像。
// 在容器中运行命令
docker exec [OPTIONS] CONTAINER_ID COMMAND [ARG...]
在运行中的容器内执行指定的命令。
// 查看日志
docker logs CONTAINER_ID
获取指定容器的日志。
以上只是一些示例。可以通过运行 docker --help
或参考 来探索更多命令及其选项。
以下是一些顶级 Docker 命令的介绍:
docker version
命令显示当前安装的 Docker 版本。它提供 Docker 客户端和服务器版本的信息,以及其他细节,如操作系统、架构和内核版本。
docker version
docker search
命令允许在 Docker Hub 上搜索 Docker 镜像。可以通过名称或使用关键词搜索相关镜像。
docker search <image_name>
docker pull
命令从注册表(如 Docker Hub)下载 Docker 镜像到本地机器。在创建容器之前,需要先拉取镜像。
docker pull <image_name>:<tag>
docker run
命令是使用频率最高的 Docker 命令之一。它从指定的镜像创建一个新容器并启动它。可以传递各种选项来自定义容器的行为,如暴露端口、挂载卷和设置环境变量。
docker run [OPTIONS] <image_name>:<tag> [COMMAND] [ARG...]
docker ps
命令列出系统上当前运行的所有容器。默认情况下,它只显示运行中的容器,但可以使用方法 -a
来列出所有容器(运行中和已停止)。
docker ps
docker ps -a
docker stop
命令停止一个或多个运行中的容器。可以通过容器的名称或 ID 来指定容器。
docker stop <container_name_or_id>
docker restart
命令重启一个或多个运行中的容器。它首先停止容器,然后再次启动它们。
docker restart <container_name_or_id>
docker kill
命令通过发送 KILL 信号强制停止运行中的容器。当 docker stop
命令无法优雅地停止容器时,应使用此命令。
docker kill <container_name_or_id>
docker exec
命令在运行中的容器内运行新命令。这在不启动新 shell 的情况下检查或排查容器问题时非常有用。
docker exec [OPTIONS] <container_name_or_id> [COMMAND] [ARG...]
docker login
命令对 Docker 注册表(如 Docker Hub)进行身份验证。需要先进行身份验证,才能将镜像推送到注册表。
docker login [OPTIONS] [SERVER]
docker commit
命令从容器的更改中创建一个新的镜像。这在捕获运行中容器的状态并基于该状态创建新镜像时非常有用。
docker commit [OPTIONS] <container_name_or_id> [REPOSITORY[:TAG]]
docker push
命令将镜像上传到 Docker 注册表,如 Docker Hub。在推送镜像之前,需要先与注册表进行身份验证。
docker push <image_name>:<tag>
docker network
命令管理 Docker 网络。它允许创建、检查和管理容器间通信的网络。
docker network [COMMAND] [ARG...]
docker history
命令显示镜像的历史记录,包括构成镜像的层以及用于创建每层的命令。
docker history <image_name>:<tag>
docker rmi
命令从本地系统中删除一个或多个镜像。在删除镜像之前,需要先停止并删除所有基于该镜像的容器。
docker rmi <image_name>:<tag>
docker ps -a
命令列出系统上的所有容器(运行中和已停止)。这是一个有用的命令,用于获取机器上所有容器的概览。
docker ps -a
docker copy
命令在容器和本地文件系统之间复制文件或目录。
docker copy [OPTIONS] <container_name_or_id>:<src_path> <dest_path>
docker copy [OPTIONS] <src_path> <container_name_or_id>:<dest_path>
docker logs
命令检索容器的日志输出。这是排查和调试容器时的一个重要命令。
docker logs [OPTIONS] <container_name_or_id>
docker volume
命令管理 Docker 卷。卷用于持久化 Docker 容器生成的数据。
docker volume [COMMAND]
docker logout [SERVER]