This makes invoking the script multiple times with the same input return
the same result, which may not be the case before because sets are
unordered and thus the channel modes can become reordered across
multiple invocations of the script.
For example, if the mlock is set to `-i`, `i` is not present in the
`modes` and thus it would error.
I'm inclined to think that the negative mlock feature doesn't behave
correctly, because the mlock of `-i` (or `-n`) would prevent anyone from
ever setting those modes on the channel. Which this does not appear to
be the case.
Fixes#1401
-P/--publish-all publishes the container ports on a random
host port, which you have to look up using `docker port`.
In the common case they should be published on the same ports.