Мой компьютер - это Windows 10 PRO с Docker Desktop CE версии 2.0.0.3 (31259) (Engine 18.09.2).
Я создаю docker-compose.yml
файл, который запускает контейнеры Traefik, Portainer, GitLab, Jenkins и Registry.
Traefik настроен с использованием SSL (самозаверяющий сертификат).
Я достиг запуска контейнеров в их доменах:
Когда я запускаю эти URL в браузере, он возвращает мне ошибку сертификата, но я без проблем обращаюсь к веб-клиентам.
Если я получу доступ к URL https://registry.localhost/v2/_catalog
из браузера, я смогу прочитать: {"repositories":[]}
Это хорошо. Я только начал свой реестр, и он пуст.
Я создал самозаверяющий сертификат с:
"C:\Program Files\OpenSSL-Win64\bin\openssl.exe" req -x509 -nodes -days 365 -newkey rsa:2048 -keyout traefik.key -out traefik.crt
Я прикрепляю файлы конфигурации. Я опускаю часть docker-compose.yml
для краткости.
докер-compose.yml
version: '3.7'
services:
traefik:
image: traefik
container_name: traefik
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- D:\docker-vols\paas\traefik\traefik.toml:/traefik.toml
- D:\docker-vols\paas\traefik\certs:/certs/
labels:
traefik.enable: true
traefik.frontend.rule: "Host:traefik.localhost"
traefik.port: 8080
# Escapar $ con otro $
traefik.frontend.auth.basic: "root:$$apr1$$3sEZB9aF$$y8ii5P4E8/KAhCiyQoS8I0"
# portainer:
# ...
# gitlab:
# ...
# jenkins:
# ...
registry:
image: registry:2
container_name: registry
volumes:
- D:\docker-vols\paas\registry\registry:/var/lib/registry
labels:
traefik.enable: true
traefik.frontend.rule: "Host:registry.localhost"
traefik.port: 5000
traefik.toml
defaultEntryPoints = ["http", "https"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[[entryPoints.https.tls.certificates]]
certFile = "/certs/traefik.crt"
keyFile = "/certs/traefik.key"
[api]
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "docker.localhost"
watch = true
exposedbydefault = false
Я запускаю его: docker-compose up
Моя проблема возникает, когда я хочу отправить образ в мой реестр с хоста (моего компьютера с Windows), чтобы проверить, что он работает отлично. Я следую за следующими шагами:
docker pull hello-world
docker tag hello-world registry.localhost/my-hello-world
docker push registry.localhost/my-hello-world
Затем возвращается
The push refers to repository [registry.localhost/my-hello-world]
Get https://registry.localhost/v2/: dial tcp: lookup registry.localhost on 192.168.65.1:53: no such host
Где моя ошибка? Спасибо.
РЕШЕНИЕ:
Я забыл добавить к /etc/hosts
:
127.0.0.1 registry.localhost