在宿主机上将docker容器内部的shell 后台执行
时间: 2023-09-02 12:03:48 浏览: 182
在宿主机上将Docker容器内部的shell后台执行,可以通过以下步骤实现:
1. 查看容器的ID:使用`docker container ls`命令列出当前正在运行的容器,找到目标容器的ID。
2. 进入容器的shell:使用`docker exec -it [容器ID] /bin/bash`命令进入容器的命令行界面。
3. 将shell后台执行:在容器的命令行界面中,可以在要执行的命令后面加上`&`符号,表示将该命令放入后台执行。
例如,假设要在容器内部执行bash脚本文件`script.sh`,可以在容器的命令行界面中输入以下命令:
```
$ bash script.sh &
```
这样,`script.sh`会在容器内部以后台模式执行。
4. 退出容器并返回到宿主机:执行完命令后,可以使用`exit`命令退出容器的命令行界面,并返回到宿主机的命令行界面。
以上就是在宿主机上将Docker容器内部的shell后台执行的步骤。请注意,在执行某些命令或任务时,需要确保容器内部有足够的资源来支持后台执行。
相关问题
docker容器内调用宿主机docker执行
您可以使用宿主机的 Docker API 来在 Docker 容器内调用宿主机 Docker。具体来说,您可以使用 Docker SDK for Python 或 Docker API 来实现这一功能。以下是一个使用 Docker SDK for Python 的示例代码:
```python
import docker
client = docker.from_env()
# 在容器内调用宿主机 Docker
container = client.containers.run(
'docker',
'ps',
remove=True,
volumes={'/var/run/docker.sock': {'bind': '/var/run/docker.sock', 'mode': 'rw'}}
)
print(container.decode())
```
这段代码会在 Docker 容器内运行一个名为 `docker` 的镜像,并执行 `docker ps` 命令。同时,它会将宿主机的 Docker socket 文件挂载到容器内,以便容器可以访问宿主机的 Docker API。
ubuntu20.04 docker容器同步宿主机时区shell脚本
可以使用以下的 shell 脚本实现将宿主机的时区同步到 Ubuntu 20.04 的 Docker 容器中:
```bash
#!/bin/bash
# 获取宿主机时区
TZ=$(cat /etc/timezone)
# 执行 Docker 容器内的命令,将时区设置为宿主机的时区
docker exec <容器ID> ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
```
其中,`<容器ID>` 需要替换为你的 Docker 容器的 ID。执行完以上脚本后,Docker 容器内的时区即会被同步为宿主机的时区。
阅读全文