Вы используете неправильные команды: docker export
и docker import
передают только часть файловой системы изображения, а не другие данные, такие как переменные среды или команду по умолчанию. Для этих команд нет типичного варианта использования.
Стандартный способ сделать это - настроить реестр Docker или использовать общедоступный сервер реестра, такой как Docker Hub, AWS ECR, GCR, ... После того, как вы это настроите, вы можете docker push
образ в реестр из системы, в которой он был создан, а затем docker pull
в той системе, в которой вы хотите его запустить (или непосредственно docker run
, что автоматически вытянет изображение, если оно отсутствует).
Если вы действительно не можете настроить реестр, тогда вам действительно нужны команды docker save
и docker load
, которые сохраняют полные изображения со всеми их метаданными. Я хотел этого только в тех средах, где я не могу подключить системы, которые я хочу запустить, к серверу реестра; в противном случае реестр почти всегда лучше. (Кластерные среды, такие как Docker Swarm и Kubernetes, почти также нуждаются в реестре.)