国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術(shù)及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術(shù) - 服務器知識 - Dockerfile構(gòu)建自定義鏡像的實現(xiàn)

Dockerfile構(gòu)建自定義鏡像的實現(xiàn)

2021-09-16 17:03程序媛小莊 服務器知識

Dockerfile構(gòu)建鏡像的方式就目前而言是使用最為廣泛的,本文主要介紹了Dockerfile構(gòu)建自定義鏡像的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

前言

前面文章中使用docker運行容器使用的鏡像都是從dockerhub上遠程pull下來的,那么我們能不能構(gòu)建自己的鏡像呢?答案是肯定滴,可以通過dockerfile構(gòu)建自己的鏡像,dockerfile本身并不難,就是一堆命令,讓小編覺得有難度的地方是如何使用dockerfile的這些命令從更高一層的角度上更好的去構(gòu)建自己的鏡像,我們就一起來看看吧。

dockerfile簡介

dockerfile其實就是一個文件,該文件的名字就是dockerfile,當然也可以不用這個名字,在構(gòu)建鏡像時指定名字即可,但是約定俗稱使用dockerfile,dockerfile的主要作用就是幫助我們構(gòu)建一個自定義鏡像,因此dockerfile也稱為鏡像構(gòu)建文件或者鏡像描述文件。

可能會有小伙伴問了,在dockerhub上官方提供了很多鏡像已經(jīng)基本滿足了所有的服務,為什么還要自定義鏡像呢?使用dockerfile自己構(gòu)建鏡像就可以將自己的應用打包成鏡像,運行鏡像就可以直接運行我們自定義的一些功能的服務了。

舉個簡單的例子,在dockerhub上下載centos7的鏡像,官方提供的鏡像是沒有vim這一功能的,因此我們可以基于官方的基礎(chǔ)的centos鏡像構(gòu)建自己的鏡像來實現(xiàn)運行centos容器時里面自動安裝vim這一功能了。

dockerfile構(gòu)建鏡像的流程

在介紹dockerfile構(gòu)建鏡像流程前需要知道一個重要概念---上下文(context)目錄,dockerfile所在的目錄被稱為上下文目錄。

docker是cs架構(gòu),使用dockerfile構(gòu)建鏡像時使用的命令是docker build,當在客戶端的操作系統(tǒng)中執(zhí)行該命令時,docker引擎會將dockerfile所在的目錄中的所有數(shù)據(jù)打包發(fā)送給docker服務端,因此dockerfile所在的目錄中最好只包含構(gòu)建當前鏡像所需的文件,服務端運行一行dockerfile中的命令就會產(chǎn)生一個臨時鏡像存在docker cache中(如果不想要產(chǎn)生臨時鏡像在docker build后加--no_cache參數(shù)),運行到最后一行的時候會得到一個最終的鏡像。如下圖所示:

Dockerfile構(gòu)建自定義鏡像的實現(xiàn)

dockerfile使用

首先說一下dockerfile構(gòu)建鏡像的命令:

?
1
2
# 命令格式:docker build -t 鏡像名:tag dockerfile所在路徑
docker build -t mycentos:01 .

下面就來介紹一下在dockerfile中常用的命令,注意注意,在dockerfile中所有的命令都是大寫的哦~。

from 鏡像名:tag  :dockerfile中第一條命令,表示基于哪個鏡像進行構(gòu)建鏡像。雖然是構(gòu)建自定義鏡像,但是這個自定義鏡像也是在官方提供的基礎(chǔ)鏡像之上進行的哦。

?
1
2
# dockerfile
from centos:7  # 表示鏡像基于centos7進行構(gòu)建

run:構(gòu)建鏡像時需要運行的命令,可以跟shell命令。

?
1
2
3
4
5
# 第一種語法格式
run yum install -y vim
 
# 第二種語法格式
run ["yum", "install", "-y", "vim"]

expose:對外界暴露的端口,只有在鏡像中暴露端口,才能在執(zhí)行docker run命令時指定-p參數(shù)。

?
1
expose 9000  # 表示暴露9000端口

workdir:指定進入容器時的路徑,可以寫多個,容器內(nèi)沒有指定的路徑時會創(chuàng)建該路徑,可以寫多個,下一個路徑是基于上一個路徑的相對路徑。

?
1
2
workdir /data
workdir /a

copy:將context目錄中指定文件復制到鏡像的指定目錄中.

?
1
2
3
4
5
6
# 命令格式:copy 原路徑(可以是絕對路徑也可以是相對路徑) 容器內(nèi)目標路徑
# 語法格式一
copy /root/app/aa.txt /data
 
# 語法格式二
copy ["<src>", ..., "<dest>"] ---語法格式二

add:將context目錄中指定文件復制到鏡像的指定目錄中,可以識別url,自動下載url對應的壓縮包,可以將本地壓縮包復制到鏡像指定目錄后自動解壓。

?
1
2
3
4
5
6
7
8
# context目錄中指定文件復制到鏡像的指定目錄中
add bb.txt /data
 
# 自動識別url并下載到容器內(nèi)指定目錄
add https://www.python.org/ftp/python/3.9.1/python-3.9.1.tgz /data
 
# 將壓縮包會自動解壓到指定目錄
add xxx.tar /data

entrypoint:用來指定容器啟動時執(zhí)行的命令,和cmd類似,往往用來設(shè)置容器啟動后的第一個命令,可以寫多個;可以被覆蓋。

?
1
2
3
4
# entrypoint shell腳本 或者 entrypoint ["tail", "-f"...]
entrypoint tail -f bb.txt
# 覆蓋
docker run --entrypoint=cat mycentos:08 /data/bb.txt

cmd:以最后一條cmd為準;可以被覆蓋;可以為entrypoint傳參數(shù),與entrypoint結(jié)合使用(只能用json數(shù)組的形式)

?
1
2
3
4
5
6
7
8
9
10
# 只運行最后一條cmd
cmd ls $basedir
cmd cat bb.txt
 
# 可以被覆蓋,docker run后面的命令會直接覆蓋dockerfile中的cmd后的命令
docker run mycentos:09 ls /data
 
# 與entrypoint結(jié)合使用,為entrypoint傳參,可以動態(tài)傳遞參數(shù)比如項目路徑不變但是項目名稱會變化,需要注意的時候,兩者結(jié)合使用的時候必須使用json數(shù)組的格式。
entrypoint ["ls", "/data"]
cmd [/data/bb"]

或者

?
1
docker run mycentos:10 /data/bb/aa

到此這篇關(guān)于dockerfile構(gòu)建自定義鏡像的實現(xiàn)的文章就介紹到這了,更多相關(guān)dockerfile構(gòu)建鏡像 內(nèi)容請搜索服務器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務器之家! 

原文鏈接:https://juejin.cn/post/6996202833313792008

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: av成人在线观看 | 欧美日韩成人 | 中文永久免费观看 | av一区二区三区免费观看 | 婷婷五月色综合 | 久久久av亚洲男天堂 | 精品久久一区二区三区 | 日韩午夜 | 欧美成人精品一区二区三区 | 九九精品视频观看 | 午夜电影福利 | 久久亚洲一区 | av在线一区二区三区 | 国产精品美女 | 99久久国产露脸国语对白 | 黄色一级毛片在线观看 | 夜夜嗨av色一区二区不卡 | 媚黑视频 | 欧美日韩午夜 | 毛片a级毛片免费 | 一区二区三区欧美 | 91色在线视频 | 欧美成人免费在线视频 | 日本在线免费观看 | 国产香蕉视频 | 伊人久久综合 | 亚洲精品国产二区 | 久久精品中文字幕一区二区 | 亚洲人成网站b2k3cm | 国产在线中文字幕 | 九九99九九 | 91精品视频导航 | 亚洲精品一区二区三区在线 | 亚洲国产成人av | 中文一区 | 久久久久综合 | 成人黄色在线观看 | 久久久一 | 精品亚洲一区二区三区四区五区 | 一色视频 | 亚洲在线视频一区 |