[英]Can I set up a docker-compose configuration with no networks?
我使用 Docker Compose 來配置一些 Dockerised 批處理作業。 這些作業從外部數據庫中提取一些數據,然后將數據保存回其他數據庫。 這些工作從不直接相互影響。 它們不公開任何端口或運行任何服務器。
我想關閉 Docker 網絡。
默認情況下,docker-compose會為每個配置創建一個網絡。 有沒有辦法抑制這種情況,以便 compose 開始運行容器而無需創建任何網絡?
您可以告訴 docker-compose 將主機網絡用於容器。 您像這樣為每個容器定義它
services:
myapp:
image: asdf
network_mode: host
當然,這意味着容器使用的任何端口都需要在主機上可用,因為您無法進行任何端口映射。
通常,創建的網絡是一件好事,也是您想做的事情。 你可能沒有意識到,但是用docker run
單個容器也會創建一個網絡,除非你使用主機網絡模式。
如果您打擾網絡的唯一創建/銷毀過程,您可以創建一次網絡並在每次旋轉組合時使用它。
networks:
default:
external: true
name: whatevernameyougaveit
此外還有一個名為 None 的 docker 內置網絡,它完全禁用網絡以供容器加入。 也許您已經使用docker network ls
和host
看到它
services:
service:
network_mode: none
如果所有服務都使用network_mode
主機或無,compose 將禁止創建默認網絡。
編輯:一個(包括我)可能有這樣的想法來實現它以擺脫每個服務的network_mode
設置:
networks:
default:
external: true
name: none
但是隨后 compose 認為它實際上是一個網絡,並嘗試設置網絡別名會導致錯誤: network-scoped alias is supported only for containers in user defined networks
。 如果您嘗試添加其他類似的預配置網絡,同樣適用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.