Оглавление:
Карта сайта:
Оглавление:
Карта сайта:
Для начала создадим label, что бы можно было поднять реестр только на одной ноде.
server1
docker node update server1 --label-add registry=true
Проинспектируем и убедимся что label был успешно добавлен
vagrant@server1:~$ docker node inspect server1 --pretty ID: zyzenb3c49rz3c46m3ygm9aog Labels: - registry=true Hostname: server1 Joined at: 2023-12-10 10:59:43.366955226 +0000 utc Status: State: Ready Availability: Active Address: 10.11.10.1 Manager Status: Address: 10.11.10.1:2377 Raft Status: Reachable Leader: Yes Platform: Operating System: linux Architecture: x86_64 Resources: CPUs: 1 Memory: 1.925GiB Plugins: Log: awslogs, fluentd, gcplogs, gelf, journald, json-file, local, logentries, splunk, syslog Network: bridge, host, ipvlan, macvlan, null, overlay Volume: local Engine Version: 24.0.7 TLS Info: TrustRoot: -----BEGIN CERTIFICATE----- MIIBazCCARCgAwIBAgIUKlzjoll/2HbrP/ahSRLZo8KeQMcwCgYIKoZIzj0EAwIw EzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMjMxMjEwMTA1NTAwWhcNNDMxMjA1MTA1 NTAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH A0IABOmsAQb3KqS1KR+0HTQQkA8zwnHAmCbbtL+c8e8HXwyIzLJMSBEoZRrSPzxQ Piv1oLvG2jfVLJv8V8n6ObyK1+qjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB Af8EBTADAQH/MB0GA1UdDgQWBBSjFVfwMKDyYJELlg14BY454S5jXTAKBggqhkjO PQQDAgNJADBGAiEAzEh7Jteq0ZRLXMRtwkj0zRgCZzYbLxiqhLbqX9KRzB8CIQDD fxZd2+LQkhGO1EAE+foD/1C9eg9wQp0L//wTWq4YWw== -----END CERTIFICATE----- Issuer Subject: MBMxETAPBgNVBAMTCHN3YXJtLWNh Issuer Public Key: MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6awBBvcqpLUpH7QdNBCQDzPCccCYJtu0v5zx7wdfDIjMskxIEShlGtI/PFA+K/Wgu8baN9Usm/xXyfo5vIrX6g==
Создаем сервис с реестром docker образов:
vagrant@server1:~$ docker service create --name registry --publish 5000:5000 --constraint node.Labels.registry==true --mount type=bind,source=/home/vagrant/registry,destination=/var/lib/registry -e REGISTRY_HTTP_ADDR=0.0.0.0:5000 registry:latest 3srd0mspdl9awp7mssoo3p5e7 overall progress: 1 out of 1 tasks 1/1: running [==================================================>] verify: Service converged
На сервере server3 проверим как работает наш новый функционал
С клонируем проект из git
vagrant@server3:~$ git clone http://webmastermsk.ru:30000/serg/docker-demo.git Cloning into 'docker-demo'... remote: Enumerating objects: 135, done. remote: Total 135 (delta 0), reused 0 (delta 0), pack-reused 135 Receiving objects: 100% (135/135), 482.37 KiB | 15.56 MiB/s, done. Resolving deltas: 100% (36/36), done. vagrant@server3:~$ ls docker-demo
Соберем образ с тегом localhost:5000/api:latest
agrant@server3:~/docker-demo$ docker build -t localhost:5000/api:latest -f apps/api/Dockerfile . [+] Building 161.1s (14/14) FINISHED
Далее пушим наш образ в реестр на server1
vagrant@server3:~/docker-demo$ docker push localhost:5000/api:latest The push refers to repository [localhost:5000/api] 8f850b6e7ca2: Pushed 43322bfa8cf3: Pushed 8164e06aee77: Pushed 1113e694e035: Pushed 31f710dc178f: Pushed a599bf3e59b8: Pushed e67e8085abae: Pushed f1417ff83b31: Pushed latest: digest: sha256:bd6c7213e3509912704b0c10ba7222b97e7c7329690698623ed4c9292c2167b6 size: 1995
На сервере server5, спулим наш образ и реестра на server1
vagrant@server5:~$ docker pull localhost:5000/api:latest latest: Pulling from api f56be85fc22e: Pull complete 8f665685b215: Pull complete e5fca6c395a6: Pull complete 561cb69653d5: Pull complete 6757c430064e: Pull complete 2158aed08417: Pull complete 374c9839c7ad: Pull complete 20e909126ac1: Pull complete Digest: sha256:bd6c7213e3509912704b0c10ba7222b97e7c7329690698623ed4c9292c2167b6 Status: Downloaded newer image for localhost:5000/api:latest localhost:5000/api:latest