日常使用时,我们可以注意到:在创建容器时,Web UI 上其实是允许容器使用虚拟交换机网络而非 NAT 的。这个选项的效果类似于虚拟机平台的虚拟交换机(或者有些时候称之为桥接网络),和直接使用 network_mode: "bridge"
有显著区别。
出于好奇,索性这样创建一个容器,然后直接 SSH 到机器上面看看生成的东西是啥样的。这个容器的实现也很直接,SSH 上去可以直接使用现成的 Docker 的命令行客户端,所以直接看看 Docker 的网络。
可以注意到这里使用了一个定制的 Docker 网络驱动。这下就明白了,然后我们可以来搜一下怎么在 Docker Compose 里调用它。
也比较顺利,直接搜到了官方的文档:Qnet — Container Station documentation (qnap-dev.github.io),这里面给出了示例:
那么直接复制粘贴就可以了。不过也发现一个问题,重新创建应用会导致 MAC 变化,DHCP 服务器上配置的静态分配不生效。此时可以直接给 services.qnet_dhcp
下设置一个 mac_address
属性来指定 MAC 地址,就不会有问题了。