Docker是一个强大的容器化平台,广泛用于应用程序的部署、管理和隔离。为了有效地操作Docker容器和镜像,掌握Docker的基本命令是每个开发者和运维人员必备的技能。本篇博客将详细介绍Docker中最常用的命令,包括docker run
、docker ps
、docker stop
、docker start
、docker exec
、docker build
、docker images
等,并结合实际示例分析每个命令的作用、用法以及适用场景。
一、docker run
命令:启动容器
docker run
是Docker中最常用的命令之一,用于从指定的镜像启动一个新的容器,并可以在容器中运行命令。该命令还可以包含额外的参数,用于配置容器的行为。
1.1 基本用法
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
IMAGE
:要启动的镜像名称。COMMAND
:可选参数,指定容器启动时执行的命令。OPTIONS
:可选参数,用于配置容器的行为。
1.2 常见参数
-d
:后台运行容器。-p
:映射容器端口到主机端口。--name
:为容器指定名称。-e
:设置环境变量。
1.3 示例
# 在后台启动一个Nginx容器,并将容器的80端口映射到主机的8080端口
docker run -d -p 8080:80 --name mynginx nginx
-d
:后台运行容器。-p 8080:80
:将容器的80端口映射到主机的8080端口。--name mynginx
:指定容器的名称为mynginx
。
1.4 应用场景
- 启动并配置容器,提供服务(如web服务、数据库服务等)。
- 在不同的端口映射、网络配置等方面灵活定制容器行为。
二、docker ps
命令:查看容器列表
docker ps
命令用于查看当前运行的容器列表,显示容器的ID、名称、状态、端口映射等信息。
2.1 基本用法
docker ps
2.2 输出示例
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8b9f8e6a1ab2 nginx "nginx -g 'daemon off;'" 3 hours ago Up 3 hours 80/tcp happy_mirzakhani
2.3 常见选项
-a
:显示所有容器(包括停止的容器)。--filter
:基于条件过滤容器(如过滤按名称、状态等)。
2.4 示例
# 查看所有容器(包括已停止的容器)
docker ps -a
2.5 应用场景
- 查看正在运行的容器及其状态,方便管理。
- 过滤容器信息,以便快速定位某个容器。
三、docker stop
命令:停止容器
docker stop
命令用于停止运行中的容器。你可以通过容器ID或容器名称来指定要停止的容器。
3.1 基本用法
docker stop CONTAINER_ID|CONTAINER_NAME
3.2 示例
# 停止容器ID为8b9f8e6a1ab2的容器
docker stop 8b9f8e6a1ab2
3.3 应用场景
- 在不需要容器运行时停止它,节省系统资源。
- 停止并重新启动容器以进行调试或更新。
四、docker start
命令:启动容器
docker start
命令用于启动一个已经停止的容器。该命令与docker run
不同,docker start
是启动已经存在的容器,而docker run
是创建并启动一个新的容器。
4.1 基本用法
docker start CONTAINER_ID|CONTAINER_NAME
4.2 示例
# 启动容器ID为8b9f8e6a1ab2的容器
docker start 8b9f8e6a1ab2
4.3 应用场景
- 启动已经停止的容器,继续运行。
- 快速恢复某个已停止的服务。
五、docker exec
命令:进入容器
docker exec
命令允许你在运行中的容器内执行命令。通过此命令,你可以进入容器并执行交互式操作,如安装软件、调试程序等。
5.1 基本用法
docker exec [OPTIONS] CONTAINER_ID|CONTAINER_NAME COMMAND [ARG...]
-it
:以交互模式运行命令并分配伪终端。COMMAND
:要执行的命令。
5.2 示例
# 进入容器并启动bash shell
docker exec -it mynginx /bin/bash
5.3 应用场景
- 进入容器内部进行调试、排错、修改配置文件等操作。
- 执行容器内的命令进行数据处理或应用更新。
六、docker build
命令:构建镜像
docker build
命令用于从Dockerfile
构建一个镜像。你可以使用此命令根据定义的Dockerfile
文件和上下文构建新的镜像。
6.1 基本用法
docker build [OPTIONS] PATH | URL | -
PATH
:Docker上下文的路径,通常是包含Dockerfile
的目录。OPTIONS
:构建过程中的额外选项。
6.2 示例
# 从当前目录的Dockerfile构建一个镜像
docker build -t myimage .
-t myimage
:给镜像命名为myimage
。
6.3 应用场景
- 自动化构建镜像,支持自定义的环境和配置。
- 将自定义应用打包为Docker镜像,方便共享和部署。
七、docker images
命令:查看镜像列表
docker images
命令用于列出当前本地Docker主机上的所有镜像。你可以查看镜像的名称、标签、镜像ID、创建时间等信息。
7.1 基本用法
docker images
7.2 输出示例
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 4bb46517cac3 6 weeks ago 133MB
ubuntu 20.04 f643c72bc252 2 months ago 72.9MB
7.3 常见选项
-a
:列出所有镜像,包括中间镜像。--filter
:按条件过滤镜像。
7.4 示例
# 查看所有镜像
docker images -a
7.5 应用场景
- 查看本地存储的镜像,确认镜像的版本和状态。
- 清理不再使用的镜像,释放磁盘空间。
八、总结
通过掌握这些常用的Docker命令,你可以更加高效地管理和操作Docker容器和镜像。以下是各命令的总结与适用场景:
docker run
:用于启动并配置新的容器,适用于应用部署和服务启动。docker ps
:查看当前运行的容器,适用于容器管理和故障排查。docker stop
、docker start
:用于停止和启动容器,适用于容器的临时暂停与恢复。docker exec
:进入容器内部进行交互式操作,适用于调试、排错或数据处理。docker build
:用于从Dockerfile
构建新的镜像,适用于镜像的定制和部署。docker images
:列出本地镜像,适用于镜像管理和清理。
希望本篇博客能够帮助你深入理解和熟练使用
Docker的基本命令,提升你在开发和运维中的工作效率。