链接和主机名docker compose

链接和主机名docker compose,docker,docker-compose,Docker,Docker Compose,我在docker compose文件中定义了两个服务,并希望将服务名称映射到主机条目,以便将数据发送到mongo db服务中的端点,例如在我的主机上 127.0.0.1 dotcomtest.net 如果我有一个名为web的服务和一个名为echo chamber的服务,我如何在我的web容器(或docker compose文件)中设置主机文件,以便向该端点发送请求,即http://dotcomtest.net/query_string? 谢谢当它们都在同一个网络上运行时,这是可能的。所以最好将

我在docker compose文件中定义了两个服务,并希望将服务名称映射到主机条目,以便将数据发送到mongo db服务中的端点,例如在我的主机上

127.0.0.1 dotcomtest.net
如果我有一个名为
web
的服务和一个名为
echo chamber
的服务,我如何在我的web容器(或docker compose文件)中设置主机文件,以便向该端点发送请求,即
http://dotcomtest.net/query_string?


谢谢

当它们都在同一个网络上运行时,这是可能的。所以最好将它们都放在一个
docker-compose
文件中

version: '3'
services:
  nginx1:
    image: nginx
    ports:
      - "8082:80"
  nginx2:
    image: nginx
    ports:
      - "8081:80"
    networks:
      default:
        aliases:
          - dotcomtest.net
当我打开此合成并使用转到
nginx1
容器时

docker-compose exec nginx1 bash
并执行以下命令

root@cabf18b17f34:/# apt update && apt install -y curl
root@cabf18b17f34:/# curl http://dotcomtest.net
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
root@cabf18b17f34:/#apt更新和apt安装-y curl
root@cabf18b17f34:/#卷曲http://dotcomtest.net
欢迎来到nginx!
身体{
宽度:35em;
保证金:0自动;
字体系列:Tahoma、Verdana、Arial、无衬线字体;
}
欢迎来到nginx!
如果您看到此页面,则nginx web服务器已成功安装,并且
工作需要进一步配置

有关在线文档和支持,请参阅 .
商业支持可从以下网址获得:

感谢您使用nginx


正如您所见,我的nginx1容器可以访问nginx2,这在它们都在同一网络上运行时是可能的。所以最好将它们都放在一个
docker-compose
文件中

version: '3'
services:
  nginx1:
    image: nginx
    ports:
      - "8082:80"
  nginx2:
    image: nginx
    ports:
      - "8081:80"
    networks:
      default:
        aliases:
          - dotcomtest.net
当我打开此合成并使用转到
nginx1
容器时

docker-compose exec nginx1 bash
并执行以下命令

root@cabf18b17f34:/# apt update && apt install -y curl
root@cabf18b17f34:/# curl http://dotcomtest.net
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
root@cabf18b17f34:/#apt更新和apt安装-y curl
root@cabf18b17f34:/#卷曲http://dotcomtest.net
欢迎来到nginx!
身体{
宽度:35em;
保证金:0自动;
字体系列:Tahoma、Verdana、Arial、无衬线字体;
}
欢迎来到nginx!
如果您看到此页面,则nginx web服务器已成功安装,并且
工作需要进一步配置

有关在线文档和支持,请参阅 .
商业支持可从以下网址获得:

感谢您使用nginx


正如您所看到的,我的nginx1容器可以访问nginx2

您的意思是希望容器与主机上的dotcomtest.net联系吗?你在使用哪个操作系统?是的(我想是的),虽然我认为这两个容器可以说是在它们自己的网络上,所以我认为这将是两个容器之间的通信。我正在使用Macose。您的意思是希望容器与主机上的dotcomtest.net联系吗?你在使用哪个操作系统?是的(我想是的),虽然我认为这两个容器可以说是在它们自己的网络上,所以我认为这将是两个容器之间的通信。我用的是MacOSthats很棒,看起来一切都很好:-)虽然不是100%了解它的工作原理,而且在docksIn
docker compose
中找不到
网络别名,这相当于
docker network create
,您的每个容器都会自动与该网络关联。现在可以为这些网络指定别名和名称。当两个容器在同一网络中运行时,它们可以使用它们的名称进行寻址,在我们的例子中,这是服务名称
nginx1
nginx2
,这很好,看起来一切都正常:-)虽然不是100%了解它的工作原理,而且在docksIn
docker compose
中找不到
网络别名,您会得到一个默认网络,相当于
docker network create
,并且您的每个容器都会自动与该网络关联。现在可以为这些网络指定别名和名称。当两个容器在同一网络中运行时,它们可以使用它们的名称进行寻址,在我们的例子中,这是服务名称
nginx1
nginx2