各位大蝦好!小白我寫了一個dockerfile,內容如下:
FROM ubuntu:14.04
MAINTAINER Chris Chan "chenx1242@163.com"
ENV REFRESHED_AT 2016-12-05
RUN apt-get -y update && apt-get install -y nginx
RUN mkdir -p /var/www/html/website
ADD nginx/global.conf /etc/nginx/conf.d/
ADD nginx/nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
接著又在本地寫了一個index.html,然後啟動這個鏡像卻發現port那裡為空,請問大神們這樣情況是什麼原因呢?
EXPOSE 是開放哪些端口,這些端口在同一個網路內的服務中是可以存取的。但並非對宿主機開放。
要想在 docker ps 中看到連接埠號碼需要 docker run 的時候指定 -p 或 -P 參數,如
-p 80:8080
把容器中的 8080 連接埠對應到宿主機的 80 連接埠。docker ps的PORTS顯示的是
docker run -p
指定的連接埠對映EXPOSE
的意思是向其他container(而不是外部網路)開放的連接埠, 而且這個不顯示在docker ps。