Я пытаюсь создать контейнер rkt (rkt 0.6.1) (экспериментальный poc) на Fedora 22, и мне кажется, что я не могу назначить сетевые порты. Я думаю, что когда-то он работал, но теперь почему-то не работает. Кажется, это не относится к конкретным приложениям, я пробовал httpd на разных портах (80, 8080, ...), также пробовал python SimpleHTTPServer на разных портах (8000, 9876, ...), он всегда говорит мне, что порт является Уже в использовании.
Я проверил с ss -tulpen
что порт не используется. Я отключил selinux и брандмауэр. Что это может быть?
РЕДАКТИРОВАТЬ:
Кажется, что-то с моим контейнером, так как я могу запустить prebuild etcd container 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