2016-10-27 3 views
0

Я смущенно о Докере, если честно. Я прочитал много документации, но я не понимаю, что происходит с моим изображением.Не понимаю, почему мое изображение Docker не сохраняется

Я вытащил изображение Ubuntu на свой Mac и выполнил докер run -i -t на нем. Ура! Я по-моему.

Итак, я установил nodejs, npm и последнюю версию Python. Большой!

Но тогда - я оставляю изображение и возвращаюсь к терминалу хоста. I docker run снова, и обнаружите, что все сделанные мной изменения исчезли.

Это показывает фундаментальное незнание природы и функций Докера. Могу ли я не вносить изменения в свое изображение и сохранять его?

+0

Как вы спасите изображение? – R0MANARMY

+1

Docker run создал новый исполняемый экземпляр контейнера. Вы можете увидеть его, запустив команду psock-docker, затем вы увидите свой запущенный контейнер. Выход docker ps -a содержит идентификатор контейнера (12-значный шестнадцатеричный номер). Используйте первые 2 цифры и запустите свой старый контейнер, а затем запустите docker exec (например, если идентификатор контейнера равен 7536867b5c4e), запустите «docker start 75», а затем «docker exec -it 75/bin/bash», и вы вернулись в свой старый container :) –

+2

Попробуйте пройти через учебник: [Создание наших собственных изображений] (https://docs.docker.com/engine/tutorials/dockerimages/#/creating-our-own-images). Если у вас возникнут вопросы, спросите их, и мы будем рады ответить на них. – R0MANARMY

ответ

0

Вы не потеряли свой контейнер, это просто, что он остановлен. Когда вы запускаете, например,

docker run ubuntu 

он создает новый контейнер из изображения Ubuntu (и это чистый образ Ubuntu без чего-либо). Если вы хотите начать свой старый образ, сначала проверьте его ID с

docker ps -a 

В результате вы можете увидеть список контейнеров, старый контейнер останавливается. Возьмите контейнер ID (12-значный шестнадцатеричный номер), и выдает следующее (давайте предположим, что идентификатор контейнера является 7536867b5c4e):

docker start 75 

, а затем запустить Баш в нем

docker attach -it 75 /bin/bash 

и вуаля, ваш старый контейнер снова взлетает со всем дополнительно установленным программным обеспечением.

Cheers

+3

Я считаю, что вам нужна «докер-приложение -it 75/bin/bash». Run попытается создать новый контейнер из изображения «75». – BMitch

+0

Спасибо! Я возвращаюсь к основам и читаю документы _properly_! – serlingpa

+0

Спасибо, @BMitch, вы правы! –

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