2016-10-15 16 views
1

создать Docker контейнер с помощьюСохранение Docker контейнер состояние на Windows,

docker-machine.exe create -d virtualbox --virtualbox-memory 2048 default 

и я вошел в bash с помощью

docker run -ti ubuntu /bin/bash 

и я получил что-то вроде [email protected]:/#, где я сделал пару apt-get install с ,

Затем я вышел из баша, и когда я снова зашел обратно, я не смог найти то, что я установил. Я хотел сделать docker commit, но я как-то не могу понять, где мой установленный материал?

UPDATE

Исходя из ответов, которые я пытался создать образ контейнера. Я скомпилировал все команды в gist.

ответ

1

Каждая команда docker run создает новый контейнер. Идентификатор в имени хоста оболочки bash является идентификатором контейнера. Это можно сделать.

Чтобы увидеть все контейнеры (включая остановленные контейнеры), сделайте docker ps -a.

2

С docker run вы создаете контейнер из изображения ubuntu. Контейнер имеет имя ae78cd536ddf (в вашем случае). Вы можете проверить изображения и контейнеры с помощью docker ps -a и docker images соответственно.

Каждый раз, когда вы запускаете docker run, создается новый контейнер. При использовании docker run --name Somename вы вынуждаете контейнер иметь имя Somename, что мешает вам создать другой контейнер с тем же именем.

Изображения неизменяемы, что означает, что вы не можете их изменить. Поэтому, когда вы изменяете что-то в запущенном контейнере, изображение остается прежним, и вы можете создавать больше контейнеров с одного и того же изображения.

Итак, после того, как вы остановили контейнер (docker stop, выйдите из контейнеризованного bash или просто перезагрузитесь), вы можете запустить docker start ae78cd536ddf, чтобы перезагрузить его. Но он будет работать в фоновом режиме, и у вас не будет bash (отметьте docker ps, чтобы увидеть, как он работает). Теперь вам просто нужен bash: docker exec -it ae78cd536ddf /bin/bash выполнит bash в контейнере, который вы начали раньше.


Просто записка о создании изображений. Возможно, вам захочется установить необходимое вам программное обеспечение (лично я люблю vim, htop, ...), а затем docker commit контейнер. Это создаст новое изображение, которое вы можете увидеть в docker images. Теперь вы можете запускать контейнеры с этого изображения, заменив ubuntu на ваше имя изображения.

Чтобы получить более воспроизводимые сборки (например, при использовании CI), вы можете создать Dockerfile и запустить docker build.

Смежные вопросы