试图熟悉码头工人,所以请耐心等待......
如果我创建了一个暴露端口5432的数据库容器(psql),然后创建了另一个想要在5432上连接的webapp,那么他们会从docker上为桥接网络分配一些IP地址......
可能分别为172.0.0.1
和172.0.0.2
。如果我启动容器,请使用ip
docker network inspect <bridge id>
如果我接着那些ips并在我的webapp设置上插入端口,那么一切都很好......
但是我不应该运行我的webapp,shell,更改设置,然后运行服务器,我应该能够运行容器...
那么我在这里缺少的是,有没有办法让这两个容器联网而不必完成所有这些?
答案 0 :(得分:2)
docker create network myapp
docker run --network myapp --name db [first-container...]
docker run --network myapp --name webapp [second-container...]
# ... and so on
现在,您可以从其他容器中按名称引用容器。就像它们是DNS中的主机名一样。
在webapp
容器中运行的应用程序中,您可以使用db
配置数据库服务器,就好像它是主机名一样。