0

我正在从网络上的各种 docker-compose 示例构建我的 docker 容器堆栈,并且在尝试在 docker-compose 文件版本之间“转换”时经常遇到麻烦。

对于这个讨论,我试图“转换” QNAP Container station Qnet 网络驱动程序示例 [1]:

version: '2'
services:
  qnet_dhcp:
    image: alpine
    command: ifconfig eth0
    networks:
      - qnet-dhcp

  qnet_static:
    image: alpine
    command: ifconfig eth0
    networks:
      qnet-static:
        ipv4_address: 192.168.80.119

networks:
  qnet-dhcp:
    driver: qnet
    ipam:
      driver: qnet
      options:
        iface: "eth0"

  qnet-static:
    driver: qnet
    ipam:
      driver: qnet
      options:
        iface: "eth0"
      config:
        - subnet: 192.168.80.0/23
          gateway: 192.168.80.254

我已经做到了这一点(我无法工作的 qnet-static 部分):

version: "3"
services:
  qnet_dhcp:
    image: alpine
    command: ifconfig eth0
    networks:
      - qnet-dhcp

networks:
  qnet-dhcp:
    driver: qnet
    driver_opts:
        iface: "eth0"

这“编译”,但当我运行它时出现错误(在 QNAP TVS-1282T 上):

[/share/data/appdata] # docker-compose up -d
Creating network "appdata_qnet-dhcp" with driver "qnet"
Creating appdata_qnet_dhcp_1 ... error

ERROR: for appdata_qnet_dhcp_1  Cannot start service qnet_dhcp: failed to create endpoint appdata_qnet_dhcp_1 owork appdata_qnet-dhcp: NetworkDriver.CreateEndpoint: invalid literal for int() with base 16: ''

ERROR: for qnet_dhcp  Cannot start service qnet_dhcp: failed to create endpoint appdata_qnet_dhcp_1 on network ta_qnet-dhcp: NetworkDriver.CreateEndpoint: invalid literal for int() with base 16: ''
ERROR: Encountered errors while bringing up the project.

有人可以澄清与此示例相关的 docker-compose 文件版本 2 和版本 3 之间的更改吗?

[1] https://qnap-dev.github.io/container-station-api/qnet.html#docker-compose

4

2 回答 2

0

我有一个类似的问题,暂时,我使用了以下解决方法。

  1. 我手动创建网络:

    docker network create -d qnet --ipam-driver=qnet --ipam-opt=iface=bond0 qnet-dhcp

  2. 然后在我的 docker-compose 文件中使用它,如下所示:

networks: qnet-dhcp: external: name: qnet-dhcp

于 2019-01-06T19:20:29.957 回答
0

我通过对 docker-compose.yml 使用 version: '2.4' 解决了这个问题:

version: "2.4"
services:
  qnet_dhcp:
    image: alpine
    command: ifconfig eth0
    mac_address: 02:42:ac:11:65:43 # you can even set a mac address!
    mem_limit: 512000000 # memory limit to 512mb
    cpus: 0.5
    networks:
      - qnet-dhcp

networks:
  qnet-dhcp:
    driver: qnet
    ipam:
      driver: qnet
      options:
        iface: "eth0"

大多数情况下,将版本“3”调整回版本“2.4”很容易。它在我的 QNAP 上完美运行。通过设置 mac 地址,我的 Fritz 盒子为容器提供了相同的 IP 地址。

于 2020-05-22T19:54:46.447 回答