docker exec
和 docker run
是 Docker 中两个不同的命令,它们的主要区别如下:
1. 命令目的
docker run
: 用于创建并启动一个新的容器。每次执行这个命令时,都会基于指定的镜像生成一个新的容器实例。docker exec
: 用于在已经运行中的容器内执行新命令,而不会创建新的容器。它可以用于调试或在容器中运行额外的程序。
2. 容器状态
docker run
: 需要提供一个镜像来创建一个新容器,且该镜像必须存在。如果是首次运行,会从 Docker Hub 下载镜像。docker exec
: 只能在已启动的容器上使用,无法创建新容器。
3. 示例用法
docker run
:docker run -d --name my_container nginx
上述命令会下载
nginx
镜像(如果尚未存在),并在后台运行名为my_container
的新容器。docker exec
:docker exec -it my_container /bin/bash
上述命令会在名为
my_container
的已运行容器内打开一个交互式终端,让你可以直接与该容器进行交互。
总结
简而言之,使用 docker run
创建和启动新的容器,而使用 docker exec
在已有的运行中的容器内部执行命令。
内容由零声教学AI助手提供,问题来源于学员提问