Я пытаюсь взять Docker-контейнер с одного компьютера и запустить его на другом, и обнаружил следующую ошибку: « Ошибка ответа от демона: команда не указана ».
Ниже приведен упрощенный пример, показывающий проблему:
docker --version
Docker version 1.10.1, build 9e83765
docker pull ubuntu
docker run --name u1 -dit ubuntu:latest
docker export -o exported u1
docker stop u1
docker rm u1
docker import exported ubuntu:imported
docker run --name u1 -dit ubuntu:imported
docker: Error response from daemon: No command specified.
В этом примере мы сначала извлекаем образ (ubuntu) и успешно создаем / запускаем u1
из него контейнер . Затем мы экспортируем этот контейнер в файл ( exported
), останавливаем / удаляем контейнер, импортируем файл в новое изображение ( ubuntu:imported
) и пытаемся запустить из него новый контейнер. Это не удается.
docker inspect imagename:tagname
сравнение оригинала и импортированного. Мне не повезло сimport
/export
и--change
, хотя все отлично работает сsave
/load
.Получил эту ошибку при попытке экспорта и импорта докер
microsoft/mssql-server-linux
.https://hub.docker.com/r/microsoft/mssql-server-linux/
Команды для экспорта и импорта:
Однако мы не смогли найти команду для его запуска. Решением было перечисление всех контейнеров на экспортирующем компьютере и просмотр команды run.
Оттуда мы могли бы узнать, как выполнить правильную команду:
источник
При экспорте контейнера он теряет собственную историю, которая содержит слои изображения и метаданные. Таким образом, ваш контейнер потерял свои состояния pid.
Каждый контейнер должен иметь начальный (корневой) процесс. Вы пересекаете точку входа по умолчанию в файле Docker как bash. [отредактировано] Я думаю, что даже если вы не переопределите, он использует значение по умолчанию, не определенное в базовом образе Ubuntu. Итак, вы должны начать свой начальный процесс с помощью команды cmd. Я думаю, что нет ошибки. Это функция dockerfile для повторного использования.
источник
Получил работу с этими дополнительными шагами:
Создайте Dockerfile следующим образом:
Создайте новый образ:
Теперь он будет работать:
Однако до сих пор неясно, почему просто экспортированное, а затем импортированное изображение не работает сразу. Это ошибка?
источник
Вы можете использовать
docker load
команду для загрузки изображений из файла архива. эта команда импортирует файл изображения и аргументы вместе.источник
docker load
иdocker save
работать с изображениями контейнеров (из которых создаются контейнеры),docker import
а такжеdocker export
работать с контейнерами.