所以我在Docker容器中运行了一个Nginx,我在localhost上运行了一个mysql,我想从我的Nginx中连接到MySql.MySql在localhost上运行,而不是将端口暴露给外部世界,所以它绑定在localhost上,而不是绑定在机器的ip地址上.
有没有办法从这个docker容器中连接到这个MySql或localhost上的任何其他程序?
我有一个运行jenkins的码头集装箱.作为构建过程的一部分,我需要访问在主机上本地运行的Web服务器.有没有办法将主机Web服务器(可以配置为在端口上运行)暴露给jenkins容器?
编辑:我在Linux机器上本地运行docker.
更新:
除了下面的@larsks答案,要从主机获取主机IP的IP地址,我还会执行以下操作:
ip addr show docker0 | grep -Po 'inet \K[\d.]+'
Run Code Online (Sandbox Code Playgroud) 我docker-compose.yml在两个不同的文件夹中有两个单独的文件:
如何确保容器中的容器~/front/docker-compose.yml可以向容器发送请求~/api/docker-compose.yml?
我知道front可以使用api单个容器设置该选项,以便可以为此容器分配特定的IP地址,但似乎此选项在使用时不可用--default-gateway.
目前我最终做了一个docker run并查看输出中的网关.它有效,但问题是这个IP是随机归因的,所以我不能依赖它.
因此,这个问题的另一种形式可能是:
但最后我要照顾的是:
我有一个完全在我的MacBook上本地运行的Web应用程序.
Webapp有一个前端(Angular/Javascript)和一个后端(Python/Django),它实现了RESTful API.
我对后端进行了Docker化,以便它在Docker容器中完全自包含并暴露端口8000.我将此端口本地映射到4026.
现在我需要Dockerize前端.但是,如果我在本地主机上运行这两个docker容器,我怎样才能让FE向BE发送HTTP请求?FE容器不会知道它外面存在的任何东西.对?
这就是我运行FE的方式:
$ http-server
Starting up http-server, serving ./
Available on:
http://127.0.0.1:8080
http://192.168.1.16:8080
Hit CTRL-C to stop the server
Run Code Online (Sandbox Code Playgroud)
请提供参考资料,说明如何实现这一目标.