Ответ 1
Вы можете перезапустить существующий контейнер после его выхода и ваши изменения все еще существуют.
docker start `docker ps -q -l` # restart it in the background
docker attach `docker ps -q -l` # reattach the terminal & stdin
Рассматривать:
docker run -it centos /bin/bash
Я нажал Ctrl + D, чтобы выйти из него.
Я хочу продолжать запускать этот контейнер, но обнаружил, что не могу.
Единственный метод
docker commit 'docker ps -q -l' my_image
docker run -it my_image /bin/bash
Я прав? Есть ли лучший метод? (Я использую докер 0.8.0.)
Вы можете перезапустить существующий контейнер после его выхода и ваши изменения все еще существуют.
docker start `docker ps -q -l` # restart it in the background
docker attach `docker ps -q -l` # reattach the terminal & stdin
docker start -a -i `docker ps -q -l`
Пояснение:
docker start
запустите контейнер (требуется имя или идентификатор) -a
присоединить к контейнеру -i
интерактивный режим docker ps
Список контейнеров -q
список только идентификаторов контейнера -l
список только последний созданный контейнер
Использование:
docker start $(docker ps -a -q --filter "status=exited")
Это запустит все контейнеры, которые находятся в состоянии выхода.
docker exec -it <container-id> /bin/bash
Это подключится к конкретному контейнеру.
Если вы хотите продолжить только один Docker-контейнер с известным именем:
docker start 'docker ps -a -q --filter "name=elas"'
Если вы хотите сделать это несколькими, легко запоминающимися командами:
docker ps -a
docker start -i <name/id>
Флаг -i
указывает -i
подключаться к стандартному контейнеру.
Если контейнер не был запущен с интерактивной оболочкой для подключения, вам нужно сделать это для запуска оболочки:
docker start <name/id>
docker exec -it <name/id> /bin/sh
/bin/sh
- это оболочка, обычно доступная с альпийскими изображениями.
Выполните следующие действия:
Запустите команду ниже, чтобы увидеть, что все службы контейнеров работают и остановлены. Опция -a
дает возможность увидеть, что контейнер также останавливается
docker ps -a
Затем запустите Docker-контейнер либо по container_id
, либо по имени тега контейнера.
docker start <CONTAINER_ID> or <NAMES>
Скажите из приведенного выше изображения, идентификатор контейнера
4b161b302337
Итак, команда для запуска -
docker start 4b161b302337
Можно проверить, работает ли контейнер с
docker ps
Если у вас есть именованный контейнер, его можно запустить, запустив
docker container start container_name
где container_name - это имя контейнера, которое необходимо указать во время создания контейнера. Вы можете заменить container_name
на идентификатор контейнера, если контейнер не назван. Идентификатор контейнера можно найти, выполнив:
docker ps -a
docker start 'docker ps -a | awk '{print $1}''
Это запустит все контейнеры, которые находятся в состоянии "Выход"