簡體   English   中英

我可以在沒有網絡的情況下設置 docker-compose 配置嗎?

[英]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 lshost看到它

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM