在链接的docker容器中执行命令

时间:2015-04-27 23:58:14

标签: docker

从链接的docker容器中的一个docker容器内部执行命令是否有任何可行的方法? 我不想从主持人那里执行命令。

3 个答案:

答案 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

示例项目

https://github.com/reduardo7/docker-container-access

答案 2 :(得分:0)

正如“Abdullah Jibaly”所说,您可以这样做,但您必须考虑一些安全问题,还需要使用 sdk docker,对于 Python 应用程序可以使用 Docker SDK for Python