0

I am trying to build a rkt (rkt 0.6.1) container (experimental poc) on fedora 22, and it seems that I can not assign network ports. I think I had it running once, but somehow now it fails. It seems not to be applicaion specific, I tried httpd on various ports (80, 8080, ...), also tried the python SimpleHTTPServer on various ports (8000, 9876, ...), it always tells me that the port is already in use.

I have checked with ss -tulpen that the port is not in use. I have disabled selinux and firewall. What can this be?

EDIT:

It seems to be something with my container, as I am able to run the prebuild etcd container https://github.com/coreos/etcd/releases/download/v2.0.4/etcd-v2.0.4-linux-amd64.aci, which opens ports at least on localhost.

My pyweb manifest looks like this:

{
    "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
            }
        ]
    }
}

The app build with this manifest exits with

[13678.750051] python[5]: socket.error: [Errno 98] Address already in use
Isaac
  • 1,195
  • 3
  • 25
  • 43

1 Answers1

1

You probably have to clean up your exited containers, this will delete the iptable rules.

rkt gc --grace-period=0s

In my systemd service file I have the following line:

ExecStopPost=rkt gc --grace-period=0s

Kurt
  • 211
  • 2
  • 9