【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

相关文章
相关标签/搜索