基本命令

 Docker   打工人   2024-11-15 17:33   211
  Docker

Docker是一个强大的容器化平台,广泛用于应用程序的部署、管理和隔离。为了有效地操作Docker容器和镜像,掌握Docker的基本命令是每个开发者和运维人员必备的技能。本篇博客将详细介绍Docker中最常用的命令,包括docker rundocker psdocker stopdocker startdocker execdocker builddocker 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 stopdocker start:用于停止和启动容器,适用于容器的临时暂停与恢复。
  • docker exec:进入容器内部进行交互式操作,适用于调试、排错或数据处理。
  • docker build:用于从Dockerfile构建新的镜像,适用于镜像的定制和部署。
  • docker images:列出本地镜像,适用于镜像管理和清理。

希望本篇博客能够帮助你深入理解和熟练使用

Docker的基本命令,提升你在开发和运维中的工作效率。