Как развернуть приложение Docker без его публикации? - PullRequest
0 голосов
/ 28 апреля 2018

Как развернуть приложение Docker, не публикуя его в своем хабе? Я не хочу создавать имя пользователя и пароль для их службы (они просто хотят ловить мух в своей экосистеме), и я не думаю, что буду использовать swarm часть Docker. Кроме того, публиковать ваш закрытый исходный код в общедоступном хранилище очень небезопасно! Однако я хочу посмотреть, как это работает, и хочу изучить часть stack , которая зависит от части swarm . Я следовал их руководству, но приложение было развернуто только на локальном главном узле по умолчанию.

https://docs.docker.com/get-started/part4/#deploy-the-app-on-the-swarm-manager

docker-composer.yml
...
# replace username/repo:tag with your name and image details
image: friendlyhello

3 машины / узлы с 1 главным узлом

C:\Temp\docker-tutorial>docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
default   *        virtualbox   Running   tcp://192.168.99.100:2376           v18.03.1-ce
myvm1     -        virtualbox   Running   tcp://192.168.99.101:2376           v18.03.1-ce
myvm2     -        virtualbox   Running   tcp://192.168.99.102:2376           v18.03.1-ce

Приложение развернуто с 6 экземплярами.

C:\Temp\docker-tutorial>docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE                  PORTS
uvsxf1q7brhb        getstartedlab_web   replicated          6/6                 friendlyhello:latest   *:80->80/tcp

Однако приложение попало только на главный узел по умолчанию и ни на один из узлов роя.

C:\Temp\docker-tutorial>docker service ps getstartedlab_web
ID                  NAME                      IMAGE                  NODE                DESIRED STATE       CURRENT STATE                ERROR
        PORTS
6jh1ua0wjyzi        getstartedlab_web.1       friendlyhello:latest   default             Running             Running about an hour ago

to14hu7g3rhz         \_ getstartedlab_web.1   friendlyhello:latest   myvm1               Shutdown            Rejected about an hour ago   "No such image: friendlyhello:"
ek91tcdj61nv         \_ getstartedlab_web.1   friendlyhello:latest   myvm1               Shutdown            Rejected about an hour ago   "No such image: friendlyhello:"
jwdvuf89a640         \_ getstartedlab_web.1   friendlyhello:latest   myvm2               Shutdown            Rejected about an hour ago   "No such image: friendlyhello:"
xrp0rim67ipi        getstartedlab_web.2       friendlyhello:latest   default             Running             Running about an hour ago

tp008eoj2mpk        getstartedlab_web.3       friendlyhello:latest   default             Running             Running about an hour ago

w6wyk3nj53zv         \_ getstartedlab_web.3   friendlyhello:latest   myvm2               Shutdown            Rejected about an hour ago   "No such image: friendlyhello:"
7ts6aqianz7l         \_ getstartedlab_web.3   friendlyhello:latest   myvm1               Shutdown            Rejected about an hour ago   "No such image: friendlyhello:"
gjt1qks57rud         \_ getstartedlab_web.3   friendlyhello:latest   myvm1               Shutdown            Rejected about an hour ago   "No such image: friendlyhello:"
o05u4qwt12vq        getstartedlab_web.4       friendlyhello:latest   default             Running             Running about an hour ago

ifzmmy8ru443         \_ getstartedlab_web.4   friendlyhello:latest   myvm1               Shutdown            Rejected about an hour ago   "No such image: friendlyhello:"
jnxn8gs3bte3         \_ getstartedlab_web.4   friendlyhello:latest   myvm2               Shutdown            Rejected about an hour ago   "No such image: friendlyhello:"
xsooht9gpf01         \_ getstartedlab_web.4   friendlyhello:latest   myvm2               Shutdown            Rejected about an hour ago   "No such image: friendlyhello:"
v23mjl8n3yyd        getstartedlab_web.5       friendlyhello:latest   default             Running             Running about an hour ago

meocennltdph        getstartedlab_web.6       friendlyhello:latest   default             Running             Running about an hour ago

3t78bpswwuyw         \_ getstartedlab_web.6   friendlyhello:latest   myvm2               Shutdown            Rejected about an hour ago   "No such image: friendlyhello:"
y3ih3md932qo         \_ getstartedlab_web.6   friendlyhello:latest   myvm2               Shutdown            Rejected about an hour ago   "No such image: friendlyhello:"
sqsngkq1440a         \_ getstartedlab_web.6   friendlyhello:latest   myvm1               Shutdown            Rejected about an hour ago   "No such image: friendlyhello:"

Docker версия 18.03.0-ce, сборка 0520e24302, Windows 8.1


Я пытался следовать

https://github.com/docker/docker-registry/blob/master/README.md#quick-start
https://docs.docker.com/registry/#basic-commands
https://blog.docker.com/2013/07/how-to-use-your-own-registry/

Я установил эту строку в docker-compose.yml

image: 192.168.99.100:5000/get-started:part2

Но после того, как я запустил docker stack deploy, он все равно не удался!

C:\Temp\docker-tutorial>docker stack deploy -c docker-compose.yml getstartedlab
Creating network getstartedlab_webnet
Creating service getstartedlab_web

C:\Temp\docker-tutorial>docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE                                   PORTS
jjr7cuqy2i54        getstartedlab_web   replicated          0/6                 192.168.99.100:5000/get-started:part2   *:80->80/tcp

C:\Temp\docker-tutorial>docker service ps getstartedlab_web
ID                  NAME                      IMAGE                                   NODE                DESIRED STATE       CURRENT STATE             ERROR
                      PORTS
bsx3slkj8pbr        getstartedlab_web.1       192.168.99.100:5000/get-started:part2   myvm1               Ready               Rejected 3 seconds ago    "No such image: 192.168.99.100"
cusqg0p35cwp         \_ getstartedlab_web.1   192.168.99.100:5000/get-started:part2   default             Shutdown            Rejected 8 seconds ago    "No such image: 192.168.99.100"
...

Изображение в 'localhost', но не в 192.168.99.100.

C:\Temp\docker-tutorial>docker pull localhost:5000/get-started:part2
part2: Pulling from get-started
Digest: sha256:fedc2e7c01a45dab371cf4e01b7f8854482b33564c52d2c725f52f787f91dbcb
Status: Image is up to date for localhost:5000/get-started:part2

C:\Temp\docker-tutorial>docker pull 192.168.99.100:5000/get-started:part2
Error response from daemon: Get https://192.168.99.100:5000/v2/: http: server gave HTTP response to HTTPS client

localhost:5000 отказывается подключаться в браузере. Я также попытался localhost:5000/get-started:part2 в качестве имени изображения, но это также не удалось.

1 Ответ

0 голосов
/ 28 апреля 2018

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

Если вы хотите иметь полный контроль, вы также можете разместить свой собственный Docker Registry:

После настройки реестра вы можете просто пройти аутентификацию с помощью docker login, а затем управлять изображениями с помощью docker push/pull как обычно.

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