运行以下命令失败:
sudo docker run -p unix:///tmp/file.sock:44444 -d image_name
我的端口转发语法有问题吗,或者这样的配置不可能?
Docker的-p语法不会采用unix套接字:
-p
-p=[] : Publish a container᾿s port to the host (format: ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort)
一种解决方案是:
"cont1"
--name cont1
-v /tmp/file.sock:/tmp/file.sock
--link cont1:cont1
socat
"cont1:4444"
我不是socat专家,但是您需要的地址规范应如下所示: UNIX-LISTEN:/tmp/file.sock,fork,reuseaddr TCP4:cont1:4444
UNIX-LISTEN:/tmp/file.sock,fork,reuseaddr TCP4:cont1:4444