日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

docker学习笔记(四)——Dockerfile创建自定义镜像

發(fā)布時(shí)間:2025/6/15 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker学习笔记(四)——Dockerfile创建自定义镜像 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

用Dockerfile創(chuàng)建docker,注意下,建議在空文件夾下創(chuàng)建

本篇我們將完成:

1、用Dockerfile創(chuàng)建docker

2、端口映射

3、卷掛載,即docker目錄掛載到宿主機(jī)


1、用Dockerfile創(chuàng)建docker

在/opt/centos/目錄下,創(chuàng)建Dockerfile

#?Centos?based?container?with?Java?and?Tomcat FROM?127.0.0.1:5000/centos:v2????#鏡像源,這里為私有 MAINTAINER?jack.zhang?????????#作者 ENV?REFRESHED_AT?2017-8-28?????#日期#?Prepare?environment????????#聲明創(chuàng)建變量ENV?JAVA_HOME?/opt/jdk1.8.0_131 ENV?JRE_HOME?/opt/jdk1.8.0_131/jre? ENV??CLASSPATH?.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH ENV?PATH?$JAVA_HOME/bin:$JRE_HOME/bin:$PATHRUN?mkdir?/data RUN?yum?install?-y?wget?????????#建議搭建本地軟件源,取包比較快,當(dāng)時(shí)直接yum安裝也可以,前提宿主機(jī)可以上網(wǎng)RUN?wget?http://192.168.10.144:9098/jdk-8u131-linux-x64.tar.gz?&&?\??#下載10.144安裝包tar?-xvf?jdk-8u131-linux-x64.tar.gz?-C?/opt/#?Install?TomcatRUN?wget?http://192.168.10.144:9098/tomcat.tar.gz?&&?\tar?-xvf?tomcat.tar.gz?-C?/data/?&&?\mv?/data/tomcat?/data/tomcat8RUN?chmod?+x?/data/tomcat8/bin/*shVOLUME?["/data/tomcat8/webapps/"]EXPOSE?8090????#對(duì)外暴露的端口,即對(duì)外提供服務(wù)的端口 EXPOSE?8009ENTRYPOINT?["/data/tomcat8/bin/catalina.sh",?"run"]??? #啟動(dòng)tomcat,注意,?docker里面的進(jìn)程要一直掛起,要不然會(huì)退出,我們用這種辦法啟動(dòng)

文件編輯完成后,我們來(lái)生成docker

注意命令后有個(gè)點(diǎn),不要忘記,當(dāng)前文件夾下面一定有Dockerfile #docker?build?-t??test/test_app?.???會(huì)打印一堆日志,這不影響,如果有異常可以找出對(duì)應(yīng)問(wèn)題, 創(chuàng)建后,我們看下是不是已經(jīng)成功了#?docker?p_w_picpaths REPOSITORY??????????????TAG?????????????????IMAGE?ID????????????CREATED?????????????SIZE test/test_app???????????latest??????????????29175ec8a720????????17?hours?ago????????836MB


2、端口映射

因?yàn)樯厦娴亩丝谝呀?jīng)暴露出來(lái),只要tomcat啟動(dòng)了,端口就是通的,所以我們這里要做的就是啟動(dòng)docker并把端映射出來(lái),這里的8090是docker提供服務(wù)的端口

啟動(dòng)docker并映射端口?注意,-p?就是端口映射 #docker?run?-d??-p?8090:8090?--restart=always?--name?tomcat?test/test_app 看下進(jìn)程是否啟動(dòng)成功#?docker?ps? CONTAINER?ID????????IMAGE???????????????COMMAND??????????????????CREATED?????????????STATUS??????????????PORTS??????????????????????????????NAMES 923bc1dda78f????????test/test_app???????"/data/tomcat8/bin..."???29?minutes?ago??????Up?29?minutes???????8009/tcp,?0.0.0.0:8090->8090/tcp???tomcat

用宿主機(jī)訪問(wèn)IP:端口,訪問(wèn)是不是可以訪問(wèn)到了?

需要說(shuō)明的是,端口映射其它是基于iptables的,所以如果docker啟動(dòng)沒(méi)問(wèn)題,進(jìn)程也存在,確認(rèn)宿主機(jī)的iptables 是否啟動(dòng)

?centos iptables

#systemctl?start?firewalld.service?#啟動(dòng)firewall

3、卷掛載,即docker目錄掛載到宿主機(jī)

其它掛載目錄到宿主機(jī),沒(méi)什么特別的,有些文檔介紹的好像有多么深?yuàn)W,其實(shí)沒(méi)啥

只是啟動(dòng)命令加下參數(shù)罷了,

先關(guān)閉運(yùn)行中的docker

#docker?stop?923bc1dda78f????923bc1dda78f?是docker的進(jìn)程號(hào),通過(guò)docker?ps?可以看得到

好了,掛載目錄啟動(dòng)

-v?命令,?注意?前面的是宿主機(jī)的目錄,后面提docker目錄 即把宿主機(jī)的/usr/share/nginx/html?掛載到docker的/data/tomcat8/webapps/ROOT/下 #?docker?run?-d?-v?/usr/share/nginx/html:/data/tomcat8/webapps/ROOT?-p?8090:8090?--restart=always?--name?tomcatapp?test/test_app查看下進(jìn)程 #?docker?ps? CONTAINER?ID????????IMAGE???????????????COMMAND??????????????????CREATED?????????????STATUS??????????????PORTS??????????????????????????????NAMES 923bc1dda78f????????test/test_app???????"/data/tomcat8/bin..."???29?minutes?ago??????Up?29?minutes???????8009/tcp,?0.0.0.0:8090->8090/tcp???tomcat我們進(jìn)入到docker?shell?看下是不是成功掛載 #?docker?exec?-it?923bc1dda78f?/bin/bash?????#923bc1dda78f?為進(jìn)程號(hào) [root@923bc1dda78f?/]#?cd?/data/tomcat8/webapps/ROOT/ [root@923bc1dda78f?ROOT]#?ls 404.html??50x.html??apache-tomcat-8.5.15-src.tar.gz??index.html??jdk-8u131-linux-x64.tar.gz??nginx-logo.png??poweredby.png可以看到已經(jīng)功能掛載

直接訪問(wèn)宿主機(jī):端口,是不是首頁(yè)不一樣的~~

這樣是不是很方便了,我們直接維護(hù)宿主機(jī)的目錄就相當(dāng)于維護(hù)docker目錄。




轉(zhuǎn)載于:https://blog.51cto.com/xiangcun168/1958270

總結(jié)

以上是生活随笔為你收集整理的docker学习笔记(四)——Dockerfile创建自定义镜像的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。