大家好,
我正在嘗試在我的 TS-264 上設置多個容器,最初使用 Docker Compose,但沒有成功。所以我改用更簡單的純 Docker,但也失敗了。
最終,我需要運行 4 個容器,並且它們能夠彼此通信。計劃如下:
- 3 個容器在 ipvlan 網路上。
- 1 個容器採用 host 模式(因為它需要存取 USB 埠)。
為了測試方便,我寫了一個簡單的腳本,拉取並運行一個 Alpine 容器。
以下是我的腳本:
#!/bin/sh
# 1. 移除所有
docker network rm qnap-ipvlan 2>/dev/null || true
docker rm -f alpine 2>/dev/null || true
# 2. 建立 ipvlan 網路(L2 模式)
# docker network create -d ipvlan --subnet=10.159.2.0/24 --gateway=10.159.2.4 --ip-range=10.159.2.96/28 -o parent=eth1 -o ipvlan_mode=l2 qnap-ipvlan
docker network create -d ipvlan --subnet=10.159.2.0/24 --gateway=10.159.2.4 --ip-range=10.159.2.96/28 -o parent=eth1 -o ipvlan_mode=l2 -o ipvlan_flags=bridge -o com.docker.network.driver.mtu=1500 qnap-ipvlan
# 3. 檢查是否成功
docker network inspect qnap-ipvlan
# 4. 用 alpine 容器測試
docker run -it --rm --network=qnap-ipvlan --ip=10.159.2.109 alpine sh -c "ping -c 2 10.159.2.4 && ping -c 2 10.159.2.10"
# 5. Alpine 是否可達
# 從 QNAP 本機:
curl -I http://10.159.2.109 2>/dev/null || echo "Testing connection"
# 6. 狀態
docker-compose ps
docker network inspect qnap-ipvlan
這是我得到的結果/錯誤:
[/share/Container/docker-compose] # chmod ug+x ./setup_IPvlan_alpine.sh
[/share/Container/docker-compose] # ./setup_IPvlan_alpine.sh
qnap-ipvlan
9f3dbd6a27cfa1812--------636471f5893ba6b38bf15f7b2c
[
{
"Name": "qnap-ipvlan",
"Id": "9f3dbd6a27cfa1812a----3b31636471f5893ba6b38bf15f7b2c",
"Created": "2026-01-14T22:05:40.655178454+01:00",
"Scope": "local",
"Driver": "ipvlan",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "10.159.2.0/24",
"IPRange": "10.159.2.96/28",
"Gateway": "10.159.2.4"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {},
"Options": {
"com.docker.network.driver.mtu": "1500",
"ipvlan_flags": "bridge",
"ipvlan_mode": "l2",
"parent": "eth1"
},
"Labels": {}
}
]
docker: Error response from daemon: failed to create the ipvlan port: device or resource busy.
Testing connection
WARN[0000] /share/Container/docker-compose/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
[
{
"Name": "qnap-ipvlan",
"Id": "9f3dbd6a27cfa1812a36-------893ba6b38bf15f7b2c",
"Created": "2026-01-14T22:05:40.655178454+01:00",
"Scope": "local",
"Driver": "ipvlan",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "10.159.2.0/24",
"IPRange": "10.159.2.96/28",
"Gateway": "10.159.2.4"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {},
"Options": {
"com.docker.network.driver.mtu": "1500",
"ipvlan_flags": "bridge",
"ipvlan_mode": "l2",
"parent": "eth1"
},
"Labels": {}
}
]
我遇到的主要錯誤是:
“docker: Error response from daemon: failed to create the ipvlan port: device or resource busy.”
為什麼會出現這個 “device or resource busy” 的 ipvlan 錯誤?我要怎麼修正才能繼續設置?
任何建議或意見都非常感謝
先謝謝大家!