4.4.docker swarm - запуск сервисов(docker-flow-proxy) (nexus)

Thank you for reading this post, don't forget to subscribe!

Име­ет­ся несколь­ко хостов:
192.168.1.180 swarm_master1_180
192.168.1.181 swarm_master2_181
192.168.1.182 swarm_master3_182
192.168.1.183 swarm_node1_183
192.168.1.184 swarm_node2_184
192.168.1.185 swarm_node3_185
Рас­смот­рим уста­нов­ку про­сто­го кон­тей­не­ра nginx кото­рый будет висеть на 80 порту.(кластер swarm уже собран, docker-flow-proxy работает)
если мы хотим что­бы дан­ный сер­вис рабо­тал в рам­ках отдель­ной docker сети, нам нуж­но будет создать её.
созда­ём нашу новую сеть:
docker network create --driver=overlay nginx

[codesyntax lang="php" blockstate="collapsed"]

[/codesyntax]

запус­ка­ем:
[root@swarm_master1_180 ~]# docker stack deploy -c nginx/nginx.yml nginx
=================================================================

Рассмотрим установку nexus.

Дан­ный сер­вис будет исполь­зо­вать­ся для хра­не­ния ска­чи­ва­е­мых образов(также его мож­но исполь­зо­вать как прок­си сер­вер и репозиторий)

Nexus будет рабо­тать толь­ко на одном сервере(так как это не кри­тич­ный сервис)
на сер­ве­ре swarm_master1_180 созда­ём дирек­то­рию для базы данных:

mkdir /var/nexus-data

chmod 777 /var/nexus-data/

отме­тим, что в дан­ной дирек­то­рии долж­но быть не мень­ше 5 гб сво­бод­но­го дис­ко­во­го пространства.
будем исполь­зо­вать сеть: proxy

[codesyntax lang="php" blockstate="collapsed"]

[/codesyntax]

запус­ка­ем:
[root@swarm_master1_180 ~]# docker stack deploy -c nexus/nexus.yml nexus

и подо­ждав пару минут(nexus дол­го запускается)
захо­дим на http://nexus.test.ru/

далее захо­дим на
nexus.test.ru созда­ём поль­зо­ва­те­ля, репо­зи­то­рий и т.д.

 

Общий репо­зи­то­рий docker:

созда­ём docker(hosted):
repositories -> create repository -> docker(hosted)

Name: docker-private
type hosted

http: 8083

мож­но ещё доба­вить для https

Нажи­ма­ем save

 

созда­ём docker(proxy):

repositories -> create repository -> docker(proxy)
Name: docker-hub
type proxy
remote storage: https://registry-1.docker.io
docker index: выби­рем Use Docker Hub

Нажи­ма­ем save

 

созда­ём docker(group):

repositories -> create repository -> docker(group)
Name: docker-group
http:8082
и добав­ля­ем в него docker-private  docker-hub

Нажи­ма­ем save

 

Если был создан докер прок­си, то на целе­вых тач­ках  добавляем:
cat /etc/docker/daemon.json
{
"insecure-registries": ["nexus.test.ru","nexus2.test.ru","nexus3.test.ru"],
"experimental": true
}

и конек­тим­ся:

docker login nexus2.test.ru

[root@swarm_master3_182 ~]# docker login nexus2.test.ru
Username: admin
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

в каче­стве логи­на и паро­ля ука­зы­ва­ем аутен­ти­фи­ка­ци­он­ные дан­ные задан­ные при вхо­де в nexus.
всё, на этом гото­во мож­но выка­чи­вать обра­за исполь­зуя сле­ду­ю­щую команду:
docker pull nexus2.test.ru/nginx

[root@swarm_master3_182 ~]# docker pull nexus2.test.ru/nginx

про­ве­ря­ем:

про­ве­ря­ем в самом nexus: