Заставьте Docker для Mac прослушивать порт TCP
Я пытаюсь заставить Docker-Java ( https://github.com/docker-java/docker-java) работать с Docker для Mac ( https://docs.docker.com/docker-for-mac/),
Как я могу установить эквивалент:
DOCKER_OPTS="-H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock"
На Mac версии Docker?
4 ответа
Есть связанный ответ, который предлагает обходной путь, используя socat
,
Это действительно работает, чтобы выставить порт 2375 в сети:
socat TCP-LISTEN:2375,reuseaddr,fork UNIX-CONNECT:/var/run/docker.sock
Если вы используете последний докер для Mac бета-версии, в соответствии с проблемой 25064:
~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux
это база данных git
Примечание: если ~/Library/Containers/com.docker.docker/Data/database/
не содержит com.docker.driver.amd64-linux
иди к этому database/
папку, и сделайте git reset --hard
,
Конфигурация демона находится под
etc/docker/daemon.json
, который просто использует конфигурацию из файла конфигурации Linux.Вам нужно изменить конфиг, а затем сделать
git commit
: docker должен автоматически перезапуститься в этот момент (если нет, перезапустить его) с новой конфигурацией.
Как отметил Michael Nelson в комментариях и подробно изложил в " Докере для Windows" (в котором есть разделы, относящиеся к "Докеру для Mac")
Виртуальная машина (на базе Alpine) использует OpenRC в качестве своей системы инициализации.
Докер
init
сценарий опирается на/usr/bin/mobyconfig
скрипт.
этоmobyconfig
скрипт требует, чтобы ядро загрузилось сcom.docker.database
метка, указывающая местоположение файла конфигурации или он освобождает от обязательств.
mobyconfig
скрипт может получитьnetwork
а такжеinsecure-registry
конфигурации для демона Docker или забрать файл конфигурации из/etc/docker/daemon.json
,
Это, вероятно, потому что у вас не работает машина.
eval $(docker-machine env default)
Если в выводе указано, что машина по умолчанию отсутствует, выполните:
docker-machine create default --driver virtualbox
Это создаст машину по умолчанию, и соединение будет успешным.
$ docker info
HTTP-прокси: docker.for.mac.http.internal: 3128
HTTPS-прокси: docker.for.mac.http.internal:3129
Реестр: https://index.docker.io/v1/
Надеюсь это поможет