最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker進(jìn)階之構(gòu)建自定義鏡像實(shí)戰(zhàn)指南

 更新時(shí)間:2022年07月12日 11:37:49   作者:Bug?終結(jié)者  
從docker鏡像倉(cāng)庫(kù)中下載的鏡像不能滿足我們的需求時(shí),可以對(duì)鏡像進(jìn)行更改,下面這篇文章主要給大家介紹了關(guān)于Docker進(jìn)階之構(gòu)建自定義鏡像實(shí)戰(zhàn)的相關(guān)資料,需要的朋友可以參考下

一、什么是 Docker 鏡像?

Docker 鏡像可以看作是一個(gè)特殊的文件系統(tǒng),除了提供容器運(yùn)行時(shí)所需的程序、庫(kù)、資源、配置等文件外,還包含了一些為運(yùn)行時(shí)準(zhǔn)備的一些配置參數(shù)(如匿名卷、環(huán)境變量、用戶等)。鏡像不包含任何動(dòng)態(tài)數(shù)據(jù),其內(nèi)容在構(gòu)建之后也不會(huì)被改變。

鏡像是Docker容器的基石,容器是鏡像的運(yùn)行實(shí)例,有了鏡像才能啟動(dòng)容器。

二、自定義鏡像的好處?

從軟件版本管理角度講,Dockerfile本身是腳本文件,是可以版本化的。理論上使用Dockerfile,在任何時(shí)候任何機(jī)器上都可以重演鏡像制作過(guò)程制作出一模一樣的鏡像,這是非常有利于工程化的。

Dockerfile 可以快速幫助我們構(gòu)建自己的定制鏡像!

三、構(gòu)建自己的Centos

通過(guò)編寫(xiě) Dockerfile 文件來(lái)制作Centos 鏡像,并在官方提供的基礎(chǔ)上添加 vim、net-tools文件

新建 /home/dockerfile

cd /home
mkdir dockerfile

進(jìn)入新建的dockerfile文件夾,并新建 mydockerfile-centos

# 基礎(chǔ)鏡像引入centos7
FROM centos:centos7
# 作者
MAINTAINER xiaowang<wanghuichen2003@163.com>
#配置工作目錄
ENV MYPATH /usr/local

WORKDIR $MYPATH
#由于官方默認(rèn)提供的centos是壓縮版本,沒(méi)有vim以及一些其它的命令,只有基礎(chǔ)的命令,我們需要去下載安裝包
RUN yum -y install vim
RUN yum -y install net-tools

# 開(kāi)放端口80
EXPOSE 80

# 輸出工作目錄
CMD echo $MYPATH
CMD echo "--- end ---"
# 以bin/bash啟動(dòng)
CMD /bin/bash

查看編寫(xiě)好的文件

編譯剛剛寫(xiě)好的centos7

# 注意后面有一個(gè) .  代表當(dāng)前目錄
docker build -f mydockerfile-centos  -t mycentos:0.1 .

等待編譯完成即可

完成后運(yùn)行鏡像

docker run -it mycentos:0.1

vim 文件

vim test

pwd

查看ifconfig

查看鏡像歷史操作

docker history 2c2feb50d12c

四、RUN、CMD和ENTRYPOINT的區(qū)別

RUN命令與CMD命令的區(qū)別在哪里?

簡(jiǎn)單說(shuō),RUN命令在Image 文件的構(gòu)建階段執(zhí)行,執(zhí)行結(jié)果會(huì)打包進(jìn)入image文件,CMD命令則是在容器啟動(dòng)后執(zhí)行。另外,一個(gè)Dockerfile可以包含多個(gè)RUN命令,但只能由一個(gè)CMD命令

注意,指定了CMD命令以后,docker container run命令就不能附加命令了(比如前面的/bin/bash),否則它會(huì)覆蓋CMD命令。

CMD和ENTRYPOINT命令的區(qū)別

  • CMD:指定容器啟動(dòng)的時(shí)候要運(yùn)行的命令,只有最后一個(gè)會(huì)生效
  • ENRTYPOINT:指定容器啟動(dòng)的時(shí)候要運(yùn)行的命令,命令可以追加

CMD命令

# 進(jìn)入dockerfile 目錄,新建dockerfile-cmd-test文件

FROM centos:centos7
CMD ["ls", "-a"]

編譯并執(zhí)行文件

# 編譯文件
docker build -f dockerfile-cmd-test -t cmdtest .

# 執(zhí)行文件
docker run f74776bf8b3c

追加命令查看全部文件目錄

docker run f74776bf8b3c -l

可以看到,cmd命令把上一個(gè)命令給替換了,由于 -l 不是命令,所以報(bào)錯(cuò)了,證明cmd命令會(huì)覆蓋前面的cmd命令,只執(zhí)行最后一個(gè)cmd命令

再次執(zhí)行查看全部文件目錄命令

docker run f74776bf8b3c ls -al

可以看到,上一個(gè) ls-a命令已被替換為ls -al命令!

ENTRYPOINT命令

回到 /home/dockerfile 目錄,新建文件測(cè)試ENTRYPOINT并寫(xiě)入內(nèi)容

cd /home/dockerfile

vim dockerfile-entrypoint

# 寫(xiě)入以下命令
FROM centos:centos7
ENTRYPOINT ["ls", "-a"]

編譯文件并執(zhí)行容器

# 編譯文件
docker build -f dockerfile-entrypoint
# 執(zhí)行容器
docker run 29891c9ff3c9

在啟動(dòng)時(shí)追加命令

docker run 29891c9ff3c9 -l

可以看到直接追加了命令

五、【實(shí)戰(zhàn)】Dockerfile制作tomcat鏡像

下載JDK、Tomcat文件

jdk:http://www.fzitv.net/softs/698365.html

Tomcat:http://www.fzitv.net/softs/537911.html

使用Filezilla將文件上傳至 /home/xiaowang目錄下

上傳成功后查看文件

編寫(xiě)文件

編寫(xiě)dockerfile文件,文件名使用官方命名:Dockerfile,build的時(shí)候會(huì)默認(rèn)尋找當(dāng)前目錄下的文件,不需要 -f 參數(shù)指定

vim Dockerfile

# 寫(xiě)入以下文件

FROM centos:centos7
MAINTAINER ethan<wanghuichen2003@163.com>

COPY readme.txt /usr/local/readme.txt

ADD jdk-8u311-linux-x64.tar.gz /usr/local
ADD apache-tomcat-9.0.62.tar.gz /usr/local/

RUN yum -y install vim

ENV MYPATH /usr/local
WORKDIR $MYPATH

ENV JAVA_HOME /usr/local/jdk1.8.0_311
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib.tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.62
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.62
ENVPATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

EXPOSE 8080

CMD /usr/local/apache-tomcat-9.0.62/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.62/bin/logs/catalina.out

構(gòu)建鏡像

編譯鏡像文件

docker build -t diytomcat:1.0

啟動(dòng)鏡像

編譯完成后啟動(dòng)鏡像

# 啟動(dòng)容器,外部端口3355映射內(nèi)部容器8080 重命名容器名稱,掛載鏡像
docker run -d -p 3355:8080 --name diytomcat -v /home/dockerfile/xiaowang/test:/usr/local/apache-tomcat-9.0.62/webapps/test diytomcat:1.0

測(cè)試訪問(wèn)

訪問(wèn)外網(wǎng)ip地址+3355端口出現(xiàn)tomcat界面

在tomcat目錄下新建html文件

由于內(nèi)部容器和外部進(jìn)行了掛載,所以修改外部?jī)?nèi)容,內(nèi)部容器也會(huì)更新

我們進(jìn)入目錄,新建html文件對(duì)外訪問(wèn)時(shí)展示此頁(yè)面

cd /home/dockerfile/xiaowang/test

vim test.html

寫(xiě)入以下內(nèi)容

<!DOCTYPE html>
<html>
    <head>
         <meta charset="UTF-8"/>
        <title>Title</title>
    </head>
    <body>
        <h1>簡(jiǎn)單的HTML頁(yè)面</h1>
        <p>Hello World!</p>
    </body>
</html>

瀏覽器后綴+test路徑訪問(wèn)

ok,至此tomcat鏡像制作完畢

小結(jié)

以上就是【Bug 終結(jié)者】對(duì) 【云原生】Docker 進(jìn)階 – 構(gòu)建自定義鏡像實(shí)戰(zhàn) 自定義我們的Docker鏡像可利于我們的快速開(kāi)發(fā),提高開(kāi)發(fā)的效率,可謂是開(kāi)發(fā)利器!

到此這篇關(guān)于Docker進(jìn)階之構(gòu)建自定義鏡像實(shí)戰(zhàn)的文章就介紹到這了,更多相關(guān)Docker構(gòu)建自定義鏡像內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決運(yùn)行Docker鏡像報(bào)錯(cuò):version `GLIBC_2.32‘ not found問(wèn)題

    解決運(yùn)行Docker鏡像報(bào)錯(cuò):version `GLIBC_2.32‘ not found

    文章介紹了解決Docker鏡像運(yùn)行時(shí)因GLIBC版本不匹配導(dǎo)致的錯(cuò)誤,建議使用AlpineLinux作為基礎(chǔ)鏡像,并在其中安裝所需的運(yùn)行時(shí)庫(kù),作者還分享了個(gè)人經(jīng)驗(yàn),提醒讀者嘗試其他方法無(wú)效后可以尋求幫助
    2024-12-12
  • docker安裝drone的實(shí)現(xiàn)示例

    docker安裝drone的實(shí)現(xiàn)示例

    Drone是一款基于Docker的持續(xù)集成和持續(xù)部署平臺(tái),可以幫助開(kāi)發(fā)者自動(dòng)化構(gòu)建、測(cè)試和部署應(yīng)用程序,本文主要介紹了docker安裝drone的實(shí)現(xiàn)示例,感興趣的可以了解一下
    2023-12-12
  • docker安裝部署jumpserver?2.25.5的方法

    docker安裝部署jumpserver?2.25.5的方法

    這篇文章主要介紹了docker安裝部署jumpserver?2.25.5的方法,本文通過(guò)圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09
  • Deepin使用docker安裝mysql數(shù)據(jù)庫(kù)過(guò)程詳解

    Deepin使用docker安裝mysql數(shù)據(jù)庫(kù)過(guò)程詳解

    這篇文章主要介紹了Deepin使用docker安裝mysql數(shù)據(jù)庫(kù)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • dockerfile中su命令切換用戶激活環(huán)境,報(bào)錯(cuò)su: invalid option -- ‘n‘

    dockerfile中su命令切換用戶激活環(huán)境,報(bào)錯(cuò)su: invalid option 

    本文主要介紹了dockerfile中su命令切換用戶激活環(huán)境以及報(bào)錯(cuò)su: invalid option -- ‘n‘的問(wèn)題解決,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-01-01
  • 淺談Windows平臺(tái)上Docker安裝與使用

    淺談Windows平臺(tái)上Docker安裝與使用

    本篇文章主要介紹了淺談Windows平臺(tái)上Docker安裝與使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • docker部署rabbitmq集群的實(shí)現(xiàn)方法

    docker部署rabbitmq集群的實(shí)現(xiàn)方法

    這篇文章主要介紹了docker部署rabbitmq集群的實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • 詳解掛載運(yùn)行的docker容器中如何掛載文件系統(tǒng)

    詳解掛載運(yùn)行的docker容器中如何掛載文件系統(tǒng)

    這篇文章主要給大家介紹了如何在掛載運(yùn)行中的docker容器中掛載文件系統(tǒng),文中通過(guò)一步步的實(shí)踐過(guò)程介紹的很詳細(xì),相信對(duì)有需要的朋友們來(lái)說(shuō)具有一定的參考借鑒價(jià)值,感興趣的朋友們下面來(lái)一起看看吧。
    2016-12-12
  • Docker掛載/etc/timezone報(bào)錯(cuò)問(wèn)題

    Docker掛載/etc/timezone報(bào)錯(cuò)問(wèn)題

    這篇文章主要介紹了Docker掛載/etc/timezone報(bào)錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 使用?Docker?部署?RStudio?的完美教程

    使用?Docker?部署?RStudio?的完美教程

    在數(shù)據(jù)科學(xué)和統(tǒng)計(jì)分析中,RStudio是重要的IDE,但傳統(tǒng)安裝可能復(fù)雜,Docker提供了容器化技術(shù),簡(jiǎn)化了RStudio的部署,本文介紹使用Docker部署RStudio的方法,包括環(huán)境準(zhǔn)備、拉取鏡像、創(chuàng)建容器命令等步驟,幫助用戶快速搭建穩(wěn)定高效的RStudio環(huán)境
    2024-09-09

最新評(píng)論

台中市| 文化| 当涂县| 项城市| 广宗县| 蒲江县| 迁西县| 磴口县| 章丘市| 当雄县| 蚌埠市| 水城县| 房山区| 岑巩县| 南皮县| 通榆县| 于都县| 抚远县| 定南县| 视频| 吕梁市| 宜川县| 新闻| 寿光市| 印江| 筠连县| 乐昌市| 五大连池市| 峨边| 若尔盖县| 贵定县| 林西县| 万盛区| 将乐县| 金川县| 玉树县| 广州市| 通道| 田东县| 灵石县| 阿拉善左旗|