Fedora

rkt 容器不允許我使用埠

  • April 21, 2016

我正在嘗試在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

引用自:https://serverfault.com/questions/707554