我可以在没有网络的情况下设置 docker-compose 配置吗?

Sal*_*ley 2 docker docker-compose

我使用 Docker Compose 来配置一些 Dockerized 批处理作业。这些作业从外部数据库中提取一些数据,然后将数据保存回其他数据库。这些工作从不直接相互影响。它们不公开任何端口或运行任何服务器。

我想关闭 Docker 网络。

默认情况下,docker-compose为每个配置创建一个网络。有没有办法抑制这种情况,以便 compose 开始运行容器而无需创建任何网络?

ara*_*sch 5

如果您担心网络的唯一创建/销毁过程,您可以创建一次网络并在每次旋转组合时使用它。

networks:
  default:
    external: true
    name: whatevernameyougaveit
Run Code Online (Sandbox Code Playgroud)

此外,还有一个名为 None 的 docker 内置网络,它会完全禁用加入该网络的容器的网络。也许你已经看过docker network lshost

services:
  service:
   network_mode: none
Run Code Online (Sandbox Code Playgroud)

如果所有服务都使用network_mode主机或不使用主机,则 compose 将抑制默认网络的创建。

编辑:一个人(包括我)可能有这样的想法来实现它,以摆脱network_mode每项服务的设置:

networks:
  default:
    external: true
    name: none
Run Code Online (Sandbox Code Playgroud)

但随后 compose 认为它实际上是一个网络并尝试设置网络别名,这会导致错误:network-scoped alias is supported only for containers in user defined networks。如果您尝试添加其他类似的预配置网络,同样适用。