如何从Docker镜像中find暴露的端口?

我有一些docker的形象。 在我的例子中,它被称为sample_nginx

 $ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE sample_nginx latest 4b34f8307839 34 hours ago 231.6 MB 

我可以运行它docker run sample_nginx和colomn“港口”我可以看到什么端口是从该图像公开:

 $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 650d7a9fe46e sample_nginx:latest "/bin/sh -c 'nginx - 3 minutes ago Up 3 minutes 80/tcp sleepy_mclean 

是否有可能找出哪些端口从图像中暴露出来而不运行?

你可以在图像上使用docker inspect来find这个(以及其他各种有趣的事情):

 $ docker inspect redis:latest 

上面的命令会给你一个很大的细节。 您可以交替传递一个格式参数来返回您正在查找的内容,如下所示。

 $ docker inspect --format='{{.Config.ExposedPorts}}' redis:latest map[6379/tcp:map[]]