Заставьте 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

Ссылка: Доступ к демону Docker Remote API в Docker для Mac

Если вы используете последний докер для 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/

Надеюсь это поможет

Другие вопросы по тегам