Разрешить небезопасный реестр в хосте, предоставленном док-машиной
В любом случае необходимо настроить - allow-insecure-ssl для docker deamon, созданного с помощью докер-машины.
команды:
docker-machine create --driver virtualbox dev
eval "$(docker-machine env dev)"
docker run myregistry:5000/busybox:latest echo 'hello world'
выход:
Unable to find image 'myregistry:5000/busybox:latest' locally
2015/06/04 16:54:17 Error: v1 ping attempt failed with error: Get
https://myregistry:5000/v1/_ping: EOF. If this private
registry supports only HTTP or HTTPS with an unknown CA certificate,
please add `--insecure-registry myregistry:5000` to the
daemon arguments. In the case of HTTPS, if you have access to the
registry CA certificate, no need for the flag; simply place the CA
certificate at /etc/docker/certs.d/myregistry:5000/ca.crt
Ответы
Ответ 1
Если вы используете стабилизатор версии docker-machine версии v0.2, вы не можете легко установить опцию докера. Но в следующей версии v0.3 эта проблема была решена с параметрами создания.
В этот момент это работает на RC1, затем вы можете использовать версию v0.3.0-RC-1 или дождаться доставки следующей стабильной версии v0.3.0 (предварительно 16 июня).
Затем используйте параметр --engine-insecure-registry
для установки --allow-insecure-ssl
для демона докеров, например:
docker-machine create --driver virtualbox --engine-insecure-registry myregistry:5000 dev
После этого вы можете выполнить:
docker run myregistry:5000/busybox:latest echo 'hello world'
Кроме того, вы можете прочитать об этом в проекте doc.
Ответ 2
Если вы хотите добавить незащищенные реестры на уже созданную докер-машину, вы можете обновить профиль на работающей виртуальной машине докера.
меры
-
SSH в вашу локальную док-ВМ.
примечание: если "default" не является именем вашего докера, то замените "default" на имя вашего докера
$ docker-machine ssh {machineName}
-
Открыть профиль Docker
$ sudo vi/var/lib/boot2docker/profile
-
Добавьте эту строку в конец файла профиля. Если EXTRA_ARGS уже существует, добавьте незащищенный флаг реестра в EXTRA_ARGS. Замените в пути к вашим реестрам.
EXTRA_ARGS=" --insecure-registry myserver.pathTo.registry1:5000 --insecure-registry myserver.pathTo.registry2:5000 --insecure-registry myserver.pathTo.registry3:5000 "
-
Сохраните изменения профиля и выйдите из докера-машины bash обратно на свой компьютер. Затем перезапустите виртуальную машину Docker, подставив в нее имя вашего компьютера.
$ docker-machine restart {machineName}
-
Потяните или вытолкните что-нибудь из вашего реестра, чтобы убедиться, что оно работает
Моя настройка
версия докера-машины: 0.6.0, сборка e27fb87
драйвер докера-машины: virtualbox
Ответ 3
Если вы хотите добавить другой реестр после того, как ваша док-машина уже создана, вам придется отредактировать файл конфигурации:
vim ~/.docker/machine/machines/dev/config.json
Разъяснение здесь: https://akrambenaissi.com/2015/11/17/addingediting-insecure-registry-to-docker-machine-afterwards/
Ответ 4
env:
- docker daemon: 1.12.3
- клиент-докер: 1.12.2
- docker api: 1.24
- докер-машина: 0.8.2
Перед созданием машины
вы можете использовать args для установки одного или нескольких небезопасных зеркал реестра и реестра .eg:
один реестр
docker-machine create -d virtualbox --engine-insecure-registry hostname:5000 --engine-registry-mirror http://hostname:5000 n1
несколько реестров
docker-machine create -d virtualbox --engine-insecure-registry hostname:5000 --engine-insecure-registry hostname:5001 --engine-registry-mirror http://hostname:5000 n1
После создания машины
вы можете отредактировать файл /var/lib/boot 2docker/profile, чтобы добавить реестры и зеркала
docker-machine ssh [machine-name]
vi /var/lib/boot2docker/profile
добавить реестр и зеркала в EXTRA_ARGS
EXTRA_ARGS='
--label provider=virtualbox
--insecure-registry hostname:5000
--insecure-registry hostname:5001
--registry-mirror http://hostname:5000
--registry-mirror http://hostname:5001
теперь вам нужно перезагрузить машину и проверить ее
docker-machine restart [machine-name]
docker info
этот метод не работает после создания машины
изменить $USER/.docker/machine/machines/default/config.json
"EngineOptions": {
"InsecureRegistry": [
"XXX.XXX.virtual"
],
}
Ответ 5
изменить $USER/.docker/machine/machines/default/config.json
"EngineOptions": {
"InsecureRegistry": [
"XXX.XXX.virtual"
],
}