docker exec和docker run的区别
时间: 2023-10-25 10:08:36 浏览: 165
docker exec和docker run是两个不同的Docker命令,用于在运行中的容器中执行命令。它们之间的区别如下:
1. docker exec:用于在正在运行的容器中执行命令。它需要指定要执行命令的容器ID或容器名称。使用docker exec命令时,Docker会在指定的容器中启动一个新的进程并执行提供的命令。此命令对于在运行中的容器中运行调试命令或管理任务非常有用。
2. docker run:用于创建新的容器并在其中运行命令。它需要指定要使用的镜像名称和要执行的命令。docker run命令将启动一个新的容器,并在该容器中执行提供的命令。这对于创建和运行新容器非常有用。
相关问题
docker run 和 docker exec
`docker run` 和 `docker exec` 是 Docker 命令行工具中的两个不同命令,它们用于不同的目的。
1. `docker run`:用于创建和运行一个新的容器。
-语法:`docker run [选项] <镜像名称> [命令] [参数]`
-说明:`docker run` 命令会根据指定的镜像创建一个新的容器,并在容器内部执行指定的命令。如果没有指定命令,则默认运行镜像中的默认命令。该命令通常用于启动一个全新的容器。
2. `docker exec`:用于在正在运行的容器内部执行命令。
-语法:`docker exec [选项] <容器名称或ID> [命令] [参数]`
-说明:`docker exec` 命令允许你进入一个正在运行的容器,并在容器内部执行指定的命令。该命令通常用于在已经运行的容器上执行额外的操作,如进入容器进行调试、运行特定的命令等。
总结:
- `docker run`用于创建和启动新容器。
- `docker exec`用于在已经运行的容器内部执行命令。
需要注意的是,这两个命令都要求 Docker 守护进程在运行状态下。
docker run 和docker exec 的区别
Docker `run` 和 `exec` 都是 Docker 命令,但它们的作用不同:
1. **docker run**: 这个命令用于启动一个新的容器。它基于一个镜像创建一个新的实例,并可以指定一些运行时选项,如端口映射、环境变量等。当你运行 `docker run` 时,实际上是在启动一个全新的、独立的容器,其资源隔离且生命周期通常与命令行结束同步。
示例:
```
docker run -p 8080:80 nginx
```
2. **docker exec**: 进入已经存在的容器并执行一个命令。这允许你在容器运行过程中直接控制容器,查看日志、管理进程等。`docker exec` 不会启动新容器,而是利用已有的容器实例。
示例:
```
docker exec -it my-running-container bash
```
阅读全文