日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2025/6/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker学习笔记(四)——Dockerfile创建自定义镜像 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用Dockerfile創建docker,注意下,建議在空文件夾下創建

本篇我們將完成:

1、用Dockerfile創建docker

2、端口映射

3、卷掛載,即docker目錄掛載到宿主機


1、用Dockerfile創建docker

在/opt/centos/目錄下,創建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????????#聲明創建變量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?????????#建議搭建本地軟件源,取包比較快,當時直接yum安裝也可以,前提宿主機可以上網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????#對外暴露的端口,即對外提供服務的端口 EXPOSE?8009ENTRYPOINT?["/data/tomcat8/bin/catalina.sh",?"run"]??? #啟動tomcat,注意,?docker里面的進程要一直掛起,要不然會退出,我們用這種辦法啟動

文件編輯完成后,我們來生成docker

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


2、端口映射

因為上面的端口已經暴露出來,只要tomcat啟動了,端口就是通的,所以我們這里要做的就是啟動docker并把端映射出來,這里的8090是docker提供服務的端口

啟動docker并映射端口?注意,-p?就是端口映射 #docker?run?-d??-p?8090:8090?--restart=always?--name?tomcat?test/test_app 看下進程是否啟動成功#?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

用宿主機訪問IP:端口,訪問是不是可以訪問到了?

需要說明的是,端口映射其它是基于iptables的,所以如果docker啟動沒問題,進程也存在,確認宿主機的iptables 是否啟動

?centos iptables

#systemctl?start?firewalld.service?#啟動firewall

3、卷掛載,即docker目錄掛載到宿主機

其它掛載目錄到宿主機,沒什么特別的,有些文檔介紹的好像有多么深奧,其實沒啥

只是啟動命令加下參數罷了,

先關閉運行中的docker

#docker?stop?923bc1dda78f????923bc1dda78f?是docker的進程號,通過docker?ps?可以看得到

好了,掛載目錄啟動

-v?命令,?注意?前面的是宿主機的目錄,后面提docker目錄 即把宿主機的/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查看下進程 #?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我們進入到docker?shell?看下是不是成功掛載 #?docker?exec?-it?923bc1dda78f?/bin/bash?????#923bc1dda78f?為進程號 [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可以看到已經功能掛載

直接訪問宿主機:端口,是不是首頁不一樣的~~

這樣是不是很方便了,我們直接維護宿主機的目錄就相當于維護docker目錄。




轉載于:https://blog.51cto.com/xiangcun168/1958270

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。