разрешить небезопасный реестр на хосте, снабженном Docker-машиной

Вам не хватает необходимого определения класса; как правило, вызвано тем, что JAR не находится в classpath.

Из API J2SE :

открытый класс NoClassDefFoundError расширяет LinkageError

Брошено, если Java Virtual Machine или экземпляр ClassLoader пытается загрузить определение класса (как часть обычного вызова метода или как часть создания нового экземпляра с использованием нового выражения), и определение класса не может быть найдено.

Определение класса поиска было выполнено, когда выполняемый в данный момент класс был скомпилирован, но определение больше не может быть найдено.

29
задан kikicarbonell 4 June 2015 в 21:36
поделиться

5 ответов

Если вы работаете в стабильной версии Docker-Machine v0.2, вы не можете настроить опцию Docker легким способом. Но в следующей версии 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'

Дополнительно вы можете прочитать об этом на Project Doc .

40
ответ дан mkobit 4 June 2015 в 21:36
поделиться

Если вы хотите добавить другой реестр после того, как ваша докер-машина уже создана, вам нужно будет отредактировать файл конфигурации: vim ~ / .docker / machine / machines / dev / config.json

Объясняется здесь: https://akrambenaissi.com/2015/11/17/addingediting-insecure-registry-to-docker-machine-afterwards/

9
ответ дан Akram Ben Aissi 4 June 2015 в 21:36
поделиться

Если вы хотите добавить незащищенные реестры на уже созданную докер-машину, вы можете обновить профиль на работающей виртуальной машине докера.

Шаги

  1. SSH в локальную виртуальную машину докера.
    примечание: если «default» не является именем вашей докер-машины, то замените «default» именем вашей докер-машины
    $ docker-machine ssh default

  2. Открыть профиль Docker
    $ sudo vi /var/lib/boot2docker/profile

  3. Добавить эту строку в конец файла профиля. Если EXTRA_ARGS уже существует, добавьте незащищенный флаг реестра в EXTRA_ARGS. Замените в пути к вашим реестрам.

    EXTRA_ARGS=" --insecure-registry myserver.pathTo.registry1:5000 --insecure-registry myserver.pathTo.registry2:5000 --insecure-registry myserver.pathTo.registry3:5000 "

  4. Сохраните изменения профиля и выйдите из окна докера-машины обратно на свою машину. Затем перезапустите виртуальную машину Docker, подставив имя вашего компьютера-докера
    $ docker-machine restart {machineName}

  5. Извлеките или вытолкните что-нибудь из реестра, чтобы убедиться, что оно работает

My Setup

версия докер-машины: 0.6.0, сборка e27fb87
драйвер докер-машины: virtualbox

]
30
ответ дан Fabian 4 June 2015 в 21:36
поделиться

Редактировать $ USER / .docker / machine / machines / default / config.json

    "EngineOptions": {
        "InsecureRegistry": [
            "XXX.XXX.virtual"
        ],
    }
4
ответ дан wcc526 4 June 2015 в 21:36
поделиться

env:

  • docker daemon: 1.12.3
  • docker клиент: 1.12.2
  • docker api: 1.24
  • docker- machine: 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 / boot2docker / 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"
    ],
}
4
ответ дан RODNEY ZHANG 4 June 2015 в 21:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: