Ответ 1
Синтаксис Docker -p
не будет принимать unix-сокет:
-p=[] : Publish a container᾿s port to the host (format:
ip:hostPort:containerPort | ip::containerPort |
hostPort:containerPort)
Одно из решений:
- Запустите свой контейнер без спецификации
-p
, мы назовем его"cont1"
(--name cont1
) - Запустите второй контейнер, который:
- Связывает монтирует сокет unix (
-v /tmp/file.sock:/tmp/file.sock
), чтобы он был доступен из контейнера - Links в первый контейнер (
--link cont1:cont1
), чтобы иметь возможность подключиться к нему - Запускает такой инструмент, как
socat
для маршрутизации трафика из Unix-сокета в конечную точку"cont1:4444"
- Связывает монтирует сокет unix (
Я не эксперт по софту, но необходимая вам спецификация адреса должна выглядеть так: UNIX-LISTEN:/tmp/file.sock,fork,reuseaddr TCP4:cont1:4444