国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Docker技術(shù)之構(gòu)建鏡像和網(wǎng)絡(luò)模式解析

不知名網(wǎng)友 / 5179人閱讀
Docker技術(shù)之構(gòu)建鏡像和網(wǎng)絡(luò)模式解析

點(diǎn)擊上方“IT那活兒”公眾號(hào),關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了!!!


Dockerfile語法詳解

Dockerfile 是一個(gè)用來構(gòu)建鏡像的文本文件,文本內(nèi)容包含了一條條構(gòu)建鏡像所需的指令和說明。
基于Dockerfile構(gòu)建鏡像可以使用docker build命令。docker build命令中使用-f可以指定具體的dockerfile文件。
1.1 FROM
基礎(chǔ)鏡像,必須是可以下載下來的,定制的鏡像都是基于 FROM 的鏡像。
1.2 MAINTAINER
指定鏡像的作者信息。
1.3 RUN
指定在當(dāng)前鏡像構(gòu)建過程中要運(yùn)行的命令。包含兩種模式

--Shell

  • RUN (shell模式,這個(gè)是最常用的)
  • RUN echo hello

1.4 EXPOSE指令
指定啟動(dòng)容器的端口。

作用:

  • 1)幫助鏡像使用者理解這個(gè)鏡像服務(wù)的守護(hù)端口,以方便配置映射。
  • 2)在運(yùn)行時(shí)使用隨機(jī)端口映射時(shí),也就是 docker run -P 時(shí),會(huì)自動(dòng)隨機(jī)映射 EXPOSE 的端口。
  • 3)可以是一個(gè)或者多個(gè)端口,也可以指定多個(gè)EXPOSE。
格式:
EXPOSE <端口1> [<端口2>...]
1.5 CMD

類似于 RUN 指令,用于運(yùn)行程序,但二者運(yùn)行的時(shí)間點(diǎn)不同:

  • 1)CMD 在docker run 時(shí)運(yùn)行。
  • 2)RUN 是在 docker build構(gòu)建鏡像時(shí)運(yùn)行的。

1.6 ENTERYPOINT
類似于 CMD 指令,但其不會(huì)被 docker run 的命令行參數(shù)指定的指令所覆蓋,而且這些命令行參數(shù)會(huì)被當(dāng)作參數(shù)送給 ENTRYPOINT 指令指定的程序。
但是, 如果運(yùn)行 docker run 時(shí)使用了 --entrypoint 選項(xiàng),將覆蓋 entrypoint指令指定的程序。
優(yōu)點(diǎn):在執(zhí)行 docker run 的時(shí)候可以指定 ENTRYPOINT 運(yùn)行所需的參數(shù)。
注意如果 Dockerfile 中如果存在多個(gè) ENTRYPOINT 指令,僅最后一個(gè)生效。
1.7 COPY
復(fù)制指令,從上下文目錄中復(fù)制文件或者目錄到容器里指定路徑。
  • COPY hom* /mydir/
  • COPY hom?.txt /mydir/

1.8 ADD
ADD 的優(yōu)點(diǎn):
在執(zhí)行 <源文件> 為 tar 壓縮文件的話,會(huì)自動(dòng)復(fù)制并解壓到 <目標(biāo)路徑>。
ADD 的缺點(diǎn):
在不解壓的前提下,無法復(fù)制 tar 壓縮文件。會(huì)令鏡像構(gòu)建緩存失效,從而可能會(huì)令鏡像構(gòu)建變得比較緩慢。具體是否使用,可以根據(jù)是否需要自動(dòng)解壓來決定。
1.9 VOLUME
定義匿名數(shù)據(jù)卷。在啟動(dòng)容器時(shí)忘記掛載數(shù)據(jù)卷,會(huì)自動(dòng)掛載到匿名卷。

作用:

  • 1)避免重要的數(shù)據(jù),因容器重啟而丟失。
  • 2)避免容器不斷變大。
在啟動(dòng)容器 docker run 的時(shí)候,我們可以通過 -v 參數(shù)修改掛載點(diǎn)。
VOLUME [“/data”]
1.10 WORKDIR
指定工作目錄。用 WORKDIR 指定的工作目錄,會(huì)在構(gòu)建鏡像的每一層中都存在。(WORKDIR 指定的工作目錄,必須是提前創(chuàng)建好的)。
docker build 構(gòu)建鏡像過程中的,每一個(gè) RUN 命令都是新建的一層。只有通過 WORKDIR 創(chuàng)建的目錄才會(huì)一直存在。
1.11 ENV
設(shè)置環(huán)境變量:
ENV  
ENV =...
1.12 USER
用于指定執(zhí)行后續(xù)命令的用戶和用戶組,這邊只是切換后續(xù)命令執(zhí)行的用戶(用戶和用戶組必須提前已經(jīng)存在)。
格式:
USER user:group
1.13 ONBUILD
用于延遲構(gòu)建命令的執(zhí)行。

簡單的說,就是 Dockerfile 里用 ONBUILD 指定的命令,在本次構(gòu)建鏡像的過程中不會(huì)執(zhí)行(假設(shè)鏡像為 test-build)。當(dāng)有新的 Dockerfile 使用了之前構(gòu)建的鏡像 FROM test-build ,這時(shí)執(zhí)行新鏡像的 Dockerfile 構(gòu)建時(shí)候,會(huì)執(zhí)行 test-build 的 Dockerfile 里的 ONBUILD 指定的命令。


Dockerfile構(gòu)建nginx鏡像

實(shí)驗(yàn)機(jī)器1臺(tái)
10.0.0.7
web01
2.1 首先先準(zhǔn)備一個(gè)centos的鏡像,第一步編寫dockerfile
三個(gè)文件要放在同一級(jí)目錄。
2.2 構(gòu)建鏡像
docker build -t="nginx:v1" .
查看鏡像是否構(gòu)建成功:
docker images | grep nginx
如圖所示鏡像構(gòu)建完成
2.3 基于剛才的鏡像啟動(dòng)容器
docker run -d -p 80 --name html2 xianchao/nginx:v1
查看容器里部署的nginx網(wǎng)站的內(nèi)容:
curl 10.0.0.7:49154
注意:
ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]

表示容器運(yùn)行時(shí),自動(dòng)啟動(dòng)容器里的nginx服務(wù)。


Dockerfile構(gòu)建tomcat鏡像

3.1 首先準(zhǔn)備構(gòu)建鏡像需要的文件
編寫tomcat的dockerfile:
3.2 開始構(gòu)建鏡像
docker build -t="tomcat8:v1" .
運(yùn)行一個(gè)容器:
docker run --name tomcat8 -itd -p 8080 tomcat:v1
進(jìn)入到容器:
docker exec -it tomcat8 /bin/bash
查看進(jìn)程,看看是否啟動(dòng)成功。
ps -ef | grep tomcat
打開新的終端窗口,查看剛才創(chuàng)建的tomcat8這個(gè)容器的詳細(xì)信息:
docker ps | grep tomcat
顯示如下信息:
4d4c91cff4b5 tomcat8:v1 
"/bin/bash"              About a minute ago Up About a
minute 0.0.0.0:32776->8080/tcp tomcat8
通過上面可以看到,tomcat在宿主機(jī)上映射的端口是49155。
這樣我們請求docker節(jié)點(diǎn)的ip:49155,就可以訪問到tomcat的內(nèi)容了。
通過這些步驟可以實(shí)現(xiàn)通過dockerfile構(gòu)建tomcat鏡像了。


dockerfile的網(wǎng)絡(luò)模式

docker run創(chuàng)建docker容器時(shí),可以用--net選項(xiàng)指定容器的網(wǎng)絡(luò)模式,Docker有以下4種網(wǎng)絡(luò)模式

  • bridge模式:使--net =bridge指定,默認(rèn)設(shè)置;
  • host模式:使--net =host指定;
  • none模式:使--net =none指定;
  • container模式:使用--net =container:NAME orID指定。

4.1 none模式

啟動(dòng)的容器沒有ip地址可動(dòng)態(tài)分配ip,Docker網(wǎng)絡(luò)none模式是指創(chuàng)建的容器沒有網(wǎng)絡(luò)地址,只有l(wèi)o網(wǎng)卡。
我們使用以下命令做一個(gè)測試:
docker run -itd --name none --net=none --privileged=true centos
docker exec -it none /bin/bash
ip addr
可以發(fā)現(xiàn)只有一個(gè)lo網(wǎng)卡。

4.2 container模式

指定一個(gè)容器,使用與其相同的網(wǎng)絡(luò)。
Docker網(wǎng)絡(luò)container模式是指,創(chuàng)建新容器的時(shí)候,通過--net container參數(shù),指定其和已經(jīng)存在的某個(gè)容器共享一個(gè) Network Namespace。如下圖所示,右方黃色新創(chuàng)建的container,其網(wǎng)卡共享左邊容器。因此就不會(huì)擁有自己獨(dú)立的 IP,而是共享左邊容器的 IP 172.17.0.2,端口范圍等網(wǎng)絡(luò)資源,兩個(gè)容器的進(jìn)程通過 lo 網(wǎng)卡設(shè)備通信。
使用以下命令進(jìn)行測試:
docker run --name container2 --net=container:none  -it --privileged=true centos
可以看到新創(chuàng)建的容器共享前面一個(gè)none容器的網(wǎng)卡。

4.3 bridge模式

默認(rèn)模式,默認(rèn)選擇bridge的情況下,容器啟動(dòng)后會(huì)通過DHCP獲取一個(gè)地址。
#創(chuàng)建橋接網(wǎng)絡(luò)。
docker run --name bridge -it --privileged=true centos bash
可以看到DHCP隨機(jī)分配了一個(gè)172地址。

4.4 host模式

使用此模式的容器共享主機(jī)網(wǎng)絡(luò)。
接下來進(jìn)行一個(gè)測試:
docker run --name host -it --net=host --privileged=true centos bash


本文作者:王文權(quán)(上海新炬中北團(tuán)隊(duì))

本文來源:“IT那活兒”公眾號(hào)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/129093.html

相關(guān)文章

  • 宜信開源|一個(gè)實(shí)例解析PaaS平臺(tái)LAIN的9大殺手級(jí)功能

    摘要:正式上線已經(jīng)大約兩年,基本已經(jīng)成熟,為宜信大數(shù)據(jù)創(chuàng)新中心各個(gè)團(tuán)隊(duì)提供了統(tǒng)一的測試和生產(chǎn)環(huán)境,簡化了服務(wù)的部署與上線流程,也降低了運(yùn)維人員對系統(tǒng)管理的復(fù)雜度。地址白皮書原文發(fā)布于高可用架構(gòu)作者宜信大數(shù)據(jù)創(chuàng)新中心團(tuán)隊(duì)王超一 一、基于Docker的PaaS平臺(tái)LAIN 在金融的場景下,LAIN 是為解放各個(gè)團(tuán)隊(duì)和業(yè)務(wù)線的生產(chǎn)力而設(shè)計(jì)的一個(gè)云平臺(tái)。LAIN 正式上線已經(jīng)大約兩年,基本已經(jīng)成熟,...

    Apollo 評論0 收藏0
  • 技術(shù)選型Docker容器引擎

    摘要:是系統(tǒng)提供的容器化技術(shù),簡稱,它結(jié)合和技術(shù)為用戶提供了更易用的接口來實(shí)現(xiàn)容器化。公司結(jié)合和以下列出的技術(shù)實(shí)現(xiàn)了容器引擎,相比于,具備更加全面的資源控制能力,是一種應(yīng)用級(jí)別的容器引擎。 showImg(https://segmentfault.com/img/bVbtPbG?w=749&h=192); 題外話   最近對Docker和Kubernetes進(jìn)行了一番學(xué)習(xí),前兩天做了一次技術(shù)...

    monw3c 評論0 收藏0
  • 后端好書閱讀與推薦(續(xù)四)

    摘要:后端好書閱讀與推薦系列文章后端好書閱讀與推薦后端好書閱讀與推薦續(xù)后端好書閱讀與推薦續(xù)二后端好書閱讀與推薦續(xù)三后端好書閱讀與推薦續(xù)四這里依然記錄一下每本書的亮點(diǎn)與自己讀書心得和體會(huì),分享并求拍磚。 后端好書閱讀與推薦系列文章:后端好書閱讀與推薦后端好書閱讀與推薦(續(xù))后端好書閱讀與推薦(續(xù)二)后端好書閱讀與推薦(續(xù)三)后端好書閱讀與推薦(續(xù)四) 這里依然記錄一下每本書的亮點(diǎn)與自己讀書心得...

    phodal 評論0 收藏0
  • 使用 Docker 搭建開發(fā)環(huán)境

    摘要:做了一次分享,主題使用搭建開發(fā)環(huán)境,簡單介紹了一下的概念,演示了使用構(gòu)建全套環(huán)境。應(yīng)場景通常于如下場景應(yīng)的動(dòng)化打包和發(fā)布動(dòng)化測試和持續(xù)集成發(fā)布在服務(wù)型環(huán)境中部署和調(diào)整數(shù)據(jù)庫或其他的后臺(tái)應(yīng)從頭編譯或者擴(kuò)展現(xiàn)有的或平臺(tái)來搭建的環(huán)境。 做了一次分享,主題《使用 Docker 搭建開發(fā)環(huán)境》,簡單介紹了一下 Docker 的概念,演示了使用 Docker-compose 構(gòu)建全套 PHP 環(huán)境...

    zxhaaa 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<