Вам не хватает необходимого определения класса; как правило, вызвано тем, что JAR не находится в classpath.
Из API J2SE :
открытый класс NoClassDefFoundError расширяет LinkageError
Брошено, если Java Virtual Machine или экземпляр ClassLoader пытается загрузить определение класса (как часть обычного вызова метода или как часть создания нового экземпляра с использованием нового выражения), и определение класса не может быть найдено.
Определение класса поиска было выполнено, когда выполняемый в данный момент класс был скомпилирован, но определение больше не может быть найдено.
Если вы работаете в стабильной версии 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 .
Если вы хотите добавить другой реестр после того, как ваша докер-машина уже создана, вам нужно будет отредактировать файл конфигурации: vim ~ / .docker / machine / machines / dev / config.json
Объясняется здесь: https://akrambenaissi.com/2015/11/17/addingediting-insecure-registry-to-docker-machine-afterwards/
Если вы хотите добавить незащищенные реестры на уже созданную докер-машину, вы можете обновить профиль на работающей виртуальной машине докера.
SSH в локальную виртуальную машину докера.
примечание: если «default» не является именем вашей докер-машины, то замените «default» именем вашей докер-машины
$ docker-machine ssh default
Открыть профиль 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
"
Сохраните изменения профиля и выйдите из окна докера-машины обратно на свою машину. Затем перезапустите виртуальную машину Docker, подставив имя вашего компьютера-докера
$ docker-machine restart {machineName}
Извлеките или вытолкните что-нибудь из реестра, чтобы убедиться, что оно работает
версия докер-машины: 0.6.0, сборка e27fb87
драйвер докер-машины: virtualbox
Редактировать $ USER / .docker / machine / machines / default / config.json
"EngineOptions": {
"InsecureRegistry": [
"XXX.XXX.virtual"
],
}
env:
Перед созданием машины
вы можете использовать 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"
],
}