docker exec 没有守护进程
时间: 2023-08-25 22:15:13 浏览: 52
你好!关于你的问题,`docker exec` 命令用于在正在运行的 Docker 容器中执行命令。它是一个非守护进程,意味着命令执行完成后会立即返回结果,而不会保持一个长期的运行状态。
如果你想在容器中运行一个守护进程,你可以使用 `docker run` 命令来启动容器,并在容器中执行需要长期运行的命令。例如,使用 `-d` 参数可以将容器以守护进程的方式运行。下面是一个示例:
```bash
docker run -d <image> <command>
```
其中 `<image>` 是你要使用的 Docker 镜像名称,`<command>` 是要在容器中执行的命令。
希望这能帮到你!如果还有其他问题,请随时提问。
相关问题
docker mysql守护进程
以下是使用Docker启动MySQL守护进程的步骤:
1.首先,使用以下命令启动MySQL容器:
```shell
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
```
这将在后台启动一个MySQL容器,并将root用户的密码设置为123456。
2.使用以下命令查看MySQL容器的日志:
```shell
docker logs mysql
```
3.如果您看到以下行,则表示MySQL已成功启动:
```shell
[Server] /usr/sbin/mysqld: ready for connections.
```
4.现在,您可以使用以下命令连接到MySQL容器:
```shell
docker exec -it mysql mysql -p
```
这将在容器中启动MySQL客户端,并提示您输入密码。输入密码后,您将进入MySQL shell。
5.要退出MySQL shell,请输入以下命令:
```shell
exit;
```
6.要停止MySQL容器,请使用以下命令:
```shell
docker stop mysql
```
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 守护进程在运行状态下。