Контейнер rkt не позволит мне использовать порты
Я пытаюсь собрать контейнер rkt (rkt 0.6.1) (экспериментальный документ) на fedora 22, и кажется, что я не могу назначить сетевые порты. Я думаю, что он работал один раз, но почему-то сейчас он не работает. Кажется, это не для конкретного приложения, я пробовал httpd на разных портах (80, 8080, ...), также пробовал python SimpleHTTPServer на разных портах (8000, 9876, ...), он всегда говорит мне, что порт Уже в использовании.
Я проверил с 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
1 ответ
Вы, вероятно, должны очистить свои вышедшие контейнеры, это удалит правила iptable.
rkt gc --grace-period=0s
В моем файле службы systemd у меня есть следующая строка:
ExecStopPost=rkt gc --grace-period=0s