Контейнер 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

Другие вопросы по тегам