Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过单元套接字连接Docker容器_Docker_Sockets_Dockerfile - Fatal编程技术网

通过单元套接字连接Docker容器

通过单元套接字连接Docker容器,docker,sockets,dockerfile,Docker,Sockets,Dockerfile,我尝试通过单元套接字连接Docker容器和内部资源 为此,我向Dockerfile添加了以下命令: RUN -v /var/run/docker.sock:/var/run/postgresql/.s.PGSQL.5432 但在docker build阶段,我收到:/bin/sh:非法选项- 错误:服务“webapp”生成失败:命令“/bin/sh-c-v/var/run/docker.sock:/var/run/postgresql/.s.PGSQL.5432”返回非零代码:2 我做错了什

我尝试通过单元套接字连接Docker容器和内部资源

为此,我向Dockerfile添加了以下命令:

 RUN -v /var/run/docker.sock:/var/run/postgresql/.s.PGSQL.5432
但在docker build阶段,我收到:/bin/sh:非法选项- 错误:服务“webapp”生成失败:命令“/bin/sh-c-v/var/run/docker.sock:/var/run/postgresql/.s.PGSQL.5432”返回非零代码:2


我做错了什么?

RUN
Dockerfile中的指令用于在生成期间在容器内运行命令,而不是运行容器。参考它的

要使容器中的Unix套接字可用,请在启动容器时指定:

docker run -v /var/run/postgresql/.s.PGSQL.5432:/var/run/postgresql/.s.PGSQL.5432 yourapp:latest
这将使主机上的
/var/run/postgresql/.s.PGSQL.5432
套接字在容器中可用

您还可以指定不同的主机和容器路径:

docker run -v /var/run/postgresql/.s.PGSQL.5432:/tmp/postgresql yourapp:latest
注意:
/var/run/docker.sock
用于与docker通信 守护进程。要小心,因为访问Docker守护进程提供了对您的机器的根访问


你能帮我澄清一下这个问题的另一个方面吗?我是否正确理解,我必须在机器上运行此命令,其中包含PGSQL.5432的数据库。有人上马了吗?我构建了我的容器,由docker编写并在本地机器上推送,然后它在远程服务器上迁移,带有数据库(带有unix套接字),很高兴能提供帮助!是的,您必须在与数据库相同的计算机上运行容器。有很多方法可以做到这一点:要么在本地构建并将映像传输到远程主机,要么配置对Docker守护进程的远程访问。看看这里的答案: