从链接的docker容器中的一个docker容器内部执行命令是否有任何可行的方法? 我不想从主持人那里执行命令。
答案 0 :(得分:2)
只要您可以访问容器中的docker socket之类的东西,就可以在任何docker容器中运行任何命令,无论它是否链接都无关紧要。例如:
# run a container and link it to `other`
docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock \
--link other:other myimage bash -l
bash$ docker exec --it other echo hello
即使未指定链接,也可以使用。
答案 1 :(得分:1)
使用 docker-compose :
version: '2.1'
services:
site:
image: ubuntu
container_name: test-site
command: sleep 999999
dkr:
image: docker
privileged: true
working_dir: "/dkr"
volumes:
- ".:/dkr"
- "/var/run/docker.sock:/var/run/docker.sock"
command: docker ps -a
然后尝试:
docker-compose up -d site
docker-compose up dkr
结果:
Attaching to tmp_dkr_1
dkr_1 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dkr_1 | 25e382142b2e docker "docker-entrypoint..." Less than a second ago Up Less than a second tmp_dkr_1
答案 2 :(得分:0)
正如“Abdullah Jibaly”所说,您可以这样做,但您必须考虑一些安全问题,还需要使用 sdk docker,对于 Python 应用程序可以使用 Docker SDK for Python