Выполнять команду в подключенном контейнере докера
Есть ли какой-либо способ для команды exec изнутри одного контейнера докера в связанном контейнере докера?
Я не хочу команду exec из хоста.
Ответы
Ответ 1
Пока у вас есть доступ к чему-то вроде сокета-докера в вашем контейнере, вы можете запускать любую команду внутри любого контейнера докеров, неважно, связано ли это. Например:
# 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
Это работает, даже если ссылка не указана.
Ответ 2
С 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