Создать докер контейнер из контейнера - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть докер на хост-машине с работающим контейнером.Мне было интересно, если это возможно, и каков наилучший подход, чтобы «инициировать» создание контейнера из запущенного контейнера.

Допустим, моя машина host , и у меня есть контейнерназывается приложение (с идентификатором 123456789 ), работающее на хосте.

root@host $ docker contain ls
123456789    app_mage    ....    app

Я хочу создать контейнер на хосте изнутри app

root@123456789 $ docker run --name app2 ...
root@host docker container ls
123456789    app_mage    ....    app
12345678A    app_mage    ....    app2

Мне нужно, чтобы мое приложение работало в докере и запускало произвольные приложения в изолированной среде (но я быскорее избегайте docker-in-docker)

1 Ответ

0 голосов
/ 22 февраля 2019

Большинство сообщества Docker отклонятся от этих типов проектов, однако это очень выполнимо.

Аналогично Запуск и остановка Docker-контейнера из другого контейнера Вы можете просто смонтировать файл docker.sock с хост-машины в контейнер, предоставив ему право доступа к демону Docker.

Чтобы сделать вещи более автоматизированными, вы можете использовать docker-py sdk для запуска контейнеров изнутри контейнера, который, в свою очередь, будет обращаться к демону Docker на хост-машине, на которой размещен контейнер, которыйвы порождаете больше контейнеров из.

Например:

docker run -v /var/run/docker.sock:/var/run/docker.sock image1 --name test1

----

import docker
def create_container():
    docker.from_env().containers.run("image2", name="test2")

Этот пример запускает контейнер test1 и запускает этот метод во вновь созданном контейнере, который, в свою очередь, создает новый контейнер test2, работающийна том же хосте, что и test1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...