隨着新功能'networking'發佈(link),Docker'link'功能將被棄用。我正在用一些容器做docker-compose,用'link'來連接其他的(沒有任何其他命令)就沒問題了。Docker-compose網絡鏈接
由於我需要將鏈接配置更改爲網絡,因此必須在'docker-compose up'之前創建docker網絡。是否有任何碼頭網絡自動生成功能?或者用任何其他方式來連接每個容器與一些配置?
隨着新功能'networking'發佈(link),Docker'link'功能將被棄用。我正在用一些容器做docker-compose,用'link'來連接其他的(沒有任何其他命令)就沒問題了。Docker-compose網絡鏈接
由於我需要將鏈接配置更改爲網絡,因此必須在'docker-compose up'之前創建docker網絡。是否有任何碼頭網絡自動生成功能?或者用任何其他方式來連接每個容器與一些配置?
默認情況下,使用v2 yml編寫docker-compose將啓動項目的網絡。除非您明確指出,否則您所定義的任何網絡也將被創建。這裏有一個例子泊塢窗,compose.yml:
version: '2'
networks:
dbnet:
appnet:
services:
db:
image: busybox
command: tail -f /dev/null
networks:
- dbnet
app:
image: busybox
command: tail -f /dev/null
networks:
- dbnet
- appnet
proxy:
image: busybox
command: tail -f /dev/null
ports:
- 80
networks:
- appnet
然後當你旋轉它,你會看到它創建的網絡定義:
$ docker-compose up -d
Creating network "test_dbnet" with the default driver
Creating network "test_appnet" with the default driver
Creating test_app_1
Creating test_db_1
Creating test_proxy_1
請注意,關聯容器還創建了一個隱含的依賴關係,因此您可能希望在您的yml中使用depends_on
,以便在刪除鏈接後在任何依賴項中進行顯式指定。
docker-compose爲自己的撰寫項目創建一個默認網絡。您只需將撰寫項目遷移至構成yaml格式的version: '2'
或version: '3'
即可。請閱讀how to upgrade瞭解更多信息。
對於版本2和3,您不必指定鏈接,因爲如果未明確指定其他網絡,則所有服務都將位於默認網絡中。
UPDATE:要使2個容器相互通信,您可以簡單地使用將解析爲容器IP的服務名稱。現在只需要鏈接,如果由於某種原因容器需要一個特定的名字,例如因爲它是硬編碼的。
那麼如何將容器連接到容器?我需要將db容器連接到tomcat容器。我將在docker-compose中使用「鏈接」,如果它不會被棄用。 –
我更新了答案,以回答您評論中的問題。在這種情況下,tomcat可以簡單地使用「db」(假設服務名爲db) –
它實際上是我想要的。謝謝 :) –