Как сохранить докер контейнер? - PullRequest
1 голос
/ 20 июня 2019

Всякий раз, когда я использую

docker run -i -t ae8c587afa40 / bin / bash команда

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

Ответы [ 3 ]

0 голосов
/ 25 июня 2019

Докер-контейнер переходит в состояние stopped при выходе из контейнера. Вы можете просмотреть все контейнеры Docker (запущенные и остановленные) с помощью docker ps -a. В этом списке вы увидите свой старый контейнер.

Если вам нужно перезапустить его, вы можете сделать это:

docker start -i <container_id>

Это перезапустит остановленный контейнер. Смотрите - https://docs.docker.com/engine/reference/commandline/start/ для получения дополнительной информации о команде docker start.

Примечание: Наличие данных внутри док-контейнера не очень хорошая идея. Вы должны использовать тома или привязывать горы для сохранения ваших данных. Хорошая идея - рассматривать контейнеры как эфемерные и неизменные.

Edit:

Чтобы отсоединиться от контейнера, не выходя из оболочки / процесса, выполняющегося в контейнере, используйте последовательность клавиш Control + P Control + Q. Смотри https://docs.docker.com/engine/reference/commandline/attach/

0 голосов
/ 25 июня 2019

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

Вы не должны полагайтесь на удобство использования контейнеров.Вместо выполнения команд вручную внутри контейнера создайте свой собственный образ, включающий эти команды.Делая это, вам не нужно беспокоиться о запуске определенного контейнера, потому что все контейнеры этого изображения будут включать команды, которые вы определили при создании изображения.

Еще одним преимуществом является то, что вы можете легко поделиться своим изображением через Dockerfile или перенести его в хранилище.

Я предлагаю вам прочитать документы , чтобы понять концепцию докера.

0 голосов
/ 20 июня 2019

Вы можете запустить контейнер в фоновом режиме, используя параметр ниже:

docker run -d --hostname=quickstart.cloudera --privileged=true -t -i -p 7180:7180 -p 8888:8888 -p 10000:10000 -p 8020:8020 -p 9092:9092 -p 9093:9093 -p 9393:9393 -p 9394:9394 -p 24042:24042  4239cd2958c6 /usr/bin/docker-quickstart

Опция -d поможет запустить контейнер, даже если вы выйдете из терминала, на котором был запущен контейнер. Будет создан новый идентификатор контейнера. Идентификатор, присутствующий в команде запуска docker, является идентификатором образа.

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