Как описано здесь Как настроить личный реестр Docker в Ubuntu 16.04 ,
Я изменил /etc/hosts
следующим образом:
192.168.1.154 registry-server
192.168.1.90 registry-client
Затем я вытащил реестрimage:
docker pull registry
Затем я сделал файлы сертификатов
mkdir /etc/certs
cd /etc/certs
openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt
Я скопировал ca.crt
в эти патчи на хосте клиента:
/etc/certs/
/etc/docker/certs.d/registry-server:5000/
Затем я запустилконтейнер на хосте сервера:
docker run -d -p 5000:5000 --restart=always --name registry -v /etc/certs:/etc/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/etc/certs/ca.crt -e REGISTRY_HTTP_TLS_KEY=/etc/certs/ca.key registry
Я пометил изображение
docker tag phpmyadmin/phpmyadmin:latest registry-server:5000/pma-test
Но когда я хочу отправить изображение registry-server:5000/pma-test
на сервер:
docker push registry-server:5000/pma-test:latest
Произошла следующая ошибка:
Ошибка ответа от демона: открыть /etc/docker/certs.d/registry-server:5000: разрешение отклонено
============================================
Обновление:
Я запустил journalctl -xe
и обнаружил следующие ошибки:
30 сентября 13:58:37 docker.dockerd [926]: time = "2019-09-30T13: 58: 37.229097561Z" уровень= debug msg = "Вызов GET / _ping"
30 сентября 13:58:37 docker.dockerd [926]: время = "2019-09-30T13: 58: 37.238248010Z" уровень = отладка мсg = "Вызов POST /v1.38/images/registry-server:5000/pma-test/push?tag="
30 сентября 13:58:37 docker.dockerd [926]: time ="2019-09-30T13: 58: 37.238670117Z "level = debug msg =" hostDir: /etc/docker/certs.d/registry-server:5000"
30 сентября 13:58:37 docker.dockerd[926]: time = "2019-09-30T13: 58: 37.238797277Z" level = debug msg = "FIXME: Получен API, для которого ошибка не соответствует ожидаемому типу !!!: open / etc / docker / certs. d / registry-server: 5000: в доступе отказано "error_type =" * os.PathError "module = api
Sep 30 13:58:37 docker.dockerd [926]: time =" 2019-09-30T13: 58: 37.238831133Z "level = error msg =" Обработчик для POST /v1.38/images/registry-server:5000/pma-test/push вернул ошибку: open /etc/docker/certs.d/registry-server:5000: разрешение отклонено "
30 сентября 13:58:37 docker.dockerd [926]: time =" 2019-09-30T13: 58: 37.238861895Z "level = debug msg =" FIXME: Получен APIдля которого ошибка не соответствует ожидаемому типу !!!: open /etc/docker/certs.d/registry-server:5000: разрешение отклонено "error_type = "* os.PathError" module = api
30.09 13:58:37 аудит [926]: AVC apparmor = "DENIED" operation = "open" profile = "snap.docker.dockerd" name= "/ etc / docker / certs.d / registry-server: 5000 /" pid = 926 comm = "dockerd" required_mask = "r" denied_mask = "r" fsuid = 0 ouid = 0
30 сентября13:58:37 ядро: аудит: тип = 1400 аудит (1569851917.234: 53): apparmor = "ОТКЛ." Операция = "открыть" профиль = "snap.docker.dockerd" имя = "/ etc / docker / certs.d /реестр-сервер: 5000 / "pid = 926 comm =" dockerd "required_mask =" r "denied_mask =" r "fsuid = 0 ouid = 0
Почему произошла эта ошибка?
Docker версия 19.03.2, сборка 6a30dfc
docker-compose версия 1.24.0, сборка 0aa59064
Сервер и клиентхост: Ubuntu 18.04