【VMCloud雲平臺】擁抱Docker(六)關於DockerFile(2)

上一章,咱們講了DockerFile的最基本構成,講了兩種Dockerfile的構建Image方式,這一篇,咱們未來介紹DockerFile裏面所帶的N多參數。mysql

如下就是今天所要說DockerFile涉及的環境:sql

wpsB1A7.tmpdocker

DockerFile簡易示意圖:vim

wpsB1B8.tmp

一、 RUN參數:咱們在上一章建立的DockerFile里加入參數Run yum install –y vim*:網絡

wpsB1C8.tmp

二、 嘗試構建,你就會發現Dockerfile的RUN參數生效了:ide

wpsB1D9.tmp

wpsB1EA.tmp

三、 因此,RUN的做用就是能夠幫你運行一些須要預運行的命令,可是最好不要在RUN裏面作相似「yum update」、「apt-get update」之類的操做,這並不符合Dockerfile的最佳實踐。測試

四、 CMD參數:介紹到RUN就不得不介紹下CMD了,CMD命令與RUN的區別在於,CMD在一個DockerFile只能用一次,若是在DockerFile存在多個CMD的話,默認只運行最後一條,好比你能夠在最後一行寫上一句「Enjoy your docker p_w_picpaths」,CMD的調用比較特殊,是在經過以你的p_w_picpaths構建完成容器後自動觸發,好比docker run ImagesName:3d

wpsB1FA.tmp

五、 EXPOES參數:這個參數用來指定Container須要暴露給其餘Container的端口,至關於構建內部網絡,與-p的區別在於,expoes是對內提供端口方法(Container之間,好比ngx訪問mysql),-p參數是映射端口至關於NAT,好比:blog

wpsB1FB.tmp

六、 構建完成:get

wpsB21B.tmp

七、 接着,咱們經過這個p_w_picpaths建立兩個容器,就明白EXPOSE參數的做用了,能夠看到下圖有出現「port 22」:

wpsB23C.tmp

八、 可是在端口映射表裏是看不到的,證實這是內部映射端口:

wpsB25C.tmp

九、 進入其中一個容器,使用nmap測試另一個容器的端口是否可以相通:

wpsB28C.tmp

十、 ENTRYPOINT參數:就此能夠看出EXPOSE的做用,眼尖的人兒可能看到我使用了ENTRYPOINT這個參數,ENTRYPOINT這個參數的屬性跟CMD有點兒像,一樣是多個參數存在的時候只執行最後一條,這個例子中,我使用了該參數將SSH服務做爲一個後臺服務進行運行:

wpsB29C.tmp


 

logo

相關文章
相關標籤/搜索