作为构建管道的一部分,我想用一个空闲的端口启动容器。
查找类似以下内容的内容:
docker run --name frontend -p $(gimme-a-free-port):80 frontend:latest发布于 2017-02-27 18:08:19
您可以使用端口0。应用程序将0传递给内核,内核将未使用的端口分配给应用程序。
docker run --name frontend -p 0:80 frontend:latest或者:
docker run --name frontend -p 80 frontend:latest在第二个例子中,我只是指定了容器端口,主机端口将被自动分配。
要验证:
docker port <containerid or container name>
80/tcp -> 0.0.0.0:32768仅获取随机端口值:
docker inspect -f '{{ (index (index .NetworkSettings.Ports "80/tcp") 0).HostPort }}' <containerid or container name>
32768发布于 2017-02-27 18:08:36
如果您没有分配host- port,docker会自动选择一个随机的端口发布容器端口。
例如:
$ docker run --name frontend -p 80 -dit busybox
4439bdce51eee473b1e961664839a410754157bf69da2d2545ab51528a42111c
$ docker port 4439bdce51eee473b1e961664839a410754157bf69da2d2545ab51528a42111c
80/tcp -> 0.0.0.0:32768
(or);
$ docker inspect -f '{{json .NetworkSettings.Ports}}' 4439bdce51eee473b1e961664839a410754157bf69da2d2545ab51528a42111c
{"80/tcp":[{"HostIp":"0.0.0.0","HostPort":"32768"}]}https://stackoverflow.com/questions/42482278
复制相似问题