Fedora
rkt 容器不允許我使用埠
我正在嘗試在fedora 22上建構一個rkt(rkt 0.6.1)容器(實驗性poc),似乎無法分配網路埠。我想我曾經執行過它,但不知何故現在它失敗了。它似乎不是特定於應用程序的,我在各種埠(80、8080,…)上嘗試了 httpd,還在各種埠(8000、9876,…)上嘗試了 python SimpleHTTPServer,它總是告訴我埠是已在使用中。
我已檢查
ss -tulpen
該埠未在使用中。我已禁用 selinux 和防火牆。這會是什麼?編輯:
這似乎與我的容器有關,因為我能夠執行預建構的 etcd 容器https://github.com/coreos/etcd/releases/download/v2.0.4/etcd-v2.0.4-linux-amd64.aci,它至少在 localhost 上打開埠。
我的 pyweb 清單如下所示:
{ "acKind": "ImageManifest", "acVersion": "0.6.1", "name": "pyweb", "labels": [ { "name": "os", "value": "linux" }, { "name": "arch", "value": "amd64" } ], "app": { "exec": [ "/usr/bin/python", "-m", "SimpleHTTPServer", "9876", "/var/www" ], "user": "0", "group": "0", "ports": [ { "name": "alt-http", "port": 9876, "protocol": "tcp", "socketActivated": true } ] } }
使用此清單的應用程序建構退出
[13678.750051] python[5]: socket.error: [Errno 98] Address already in use
您可能必須清理退出的容器,這將刪除 iptable 規則。
rkt gc --grace-period=0s
在我的 systemd 服務文件中,我有以下行:
ExecStopPost=rkt gc --grace-period=0s