отправка образа докера в регистр докера на другом хосте - PullRequest
0 голосов
/ 01 сентября 2018

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

так что это моя машина (я использую пример изображения hello-world)

macHost:~ ciasto$ docker tag hello-world 192.168.0.6:5000/hello-world

тогда я пытаюсь docker push 192.168.0.6:5000/hello-world

но выдает ошибку:

The push refers to a repository [192.168.0.6:5000/hello-world]
Get https://192.168.0.6:5000/v2/: dial tcp 192.168.0.6:5000: getsockopt: connection refused

так что я пробовал без порта 5000.

$ docker push 192.168.0.6/hello-world-2

это тоже выдает ту же ошибку:

The push refers to a repository [192.168.0.6/hello-world-2]
Get https://192.168.0.6/v2/: dial tcp 192.168.0.6:443: getsockopt: connection refused

что я делаю не так?

1 Ответ

0 голосов
/ 01 сентября 2018

Реестр Docker - это определенная часть программного обеспечения; Вы не можете напрямую docker push изображение в другую систему.

Лучший рабочий процесс - почти наверняка написать Dockerfile, который описывает, как создать свой образ. Это простой текстовый файл, мало чем отличающийся от сценария оболочки, который вы обычно добавляете в свой репозиторий исходного кода. Затем в другой системе вы можете проверить репозиторий и запустить docker build и получить функционально эквивалентный образ.

Если у вас есть полуизолированная сеть, вы всегда можете запустить свой собственный реестр. Допустим, вы настроили свой локальный DNS так, что имя хоста my-registry.local разрешается в 192.168.0.123; затем вы можете docker tag свои локальные изображения как my-registry.local/me/imagename, docker push их из одной системы и docker pull их из другой.

Путь с наименьшим обслуживанием, с минимальной воспроизводимостью, с наивысшим долгосрочным усилием - это docker save изображение в первой системе, scp или иная передача его во вторую систему, а потом docker load это там. Если у вас есть мотивация, вы даже можете сделать это за один шаг

docker save me/imagename | ssh elsewhere docker load

Вы вынуждены делать это, если система «в другом месте» фактически отключена от сети, а на этапе «копировать в другую систему» ​​необходимо скопировать файл изображения на съемный носитель. Однако, если вы делаете это вообще регулярно или у вас более одной целевой системы, вы, вероятно, сочтете целесообразным настроить локальный реестр.

...