成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

容器docker基本使用詳細(xì)手冊(cè)

IT那活兒 / 1677人閱讀
容器docker基本使用詳細(xì)手冊(cè)
點(diǎn)擊上方“IT那活兒”公眾號(hào),關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了?。?!

準(zhǔn)備工作及安裝

1.1 根據(jù)官方文檔建議使用Centos7及以上版本

https://docs.docker.com/engine/install/centos/

1.2 更新yum到最新版本

1.3 卸載舊版本和依賴(一般用于重新安裝Docker)
上圖是未安裝過(guò)docker的運(yùn)行結(jié)果。

1.4 安裝存儲(chǔ)庫(kù)

1)安裝docker需要的工具包

2)建立docker倉(cāng)庫(kù)(官方提供的公共倉(cāng)庫(kù))
1.5 安裝docker引擎
1.6 配置docker的images鏡像加速(使用國(guó)內(nèi)倉(cāng)庫(kù),這里使用的是阿里云)

我們可以通過(guò)修改daemon.json 文件添加其它的倉(cāng)庫(kù)地址,進(jìn)行鏡像上傳和下載。

修改此配置文件一定要先重啟daemon文件、重啟docker。

1.7 運(yùn)行docker

設(shè)置開(kāi)機(jī)自啟。

1.8 測(cè)試

測(cè)試成功! 

Docker的基本命令使用

2.1 docker images

可以查看現(xiàn)有的鏡像上面的參數(shù)分別是:

鏡像名、鏡像標(biāo)簽、鏡像id、鏡像創(chuàng)建時(shí)間、鏡像大小。

2.2 docker ps

上面的參數(shù)分別是:

容器ID、鏡像ID、啟動(dòng)容器的命令、容器創(chuàng)建時(shí)間、容器狀態(tài)、容器端口信息、容器名字。

docker ps -a 會(huì)顯示所有的容器包括沒(méi)有運(yùn)行的容器或者已經(jīng)停止的容器。

2.3 docker run

由上圖可知docker run 后面接鏡像ID 或者 鏡像名:鏡像標(biāo)簽。

其他參數(shù):

  • -d參數(shù)使容器后臺(tái)啟動(dòng),會(huì)輸出容器的長(zhǎng)ID。

  • -p參數(shù)指定虛擬機(jī)對(duì)容器的端口的映射(虛擬機(jī)端口:容器端口)。

  • --name參數(shù)指定容器的名字,不指定名字系統(tǒng)會(huì)隨機(jī)指定名字。

  • -P參數(shù)隨機(jī)指定虛擬機(jī)端口映射。

  • -it參數(shù)這其實(shí)是兩個(gè)參數(shù)分別是-i,-t但在實(shí)際使用情況下是一起使用的,表示直接啟動(dòng)容器并進(jìn)入(進(jìn)入容器中一般是)。

2.4 docker exec

tomcat是容器名稱,填寫容器ID也是可以的。

進(jìn)入后臺(tái)啟動(dòng)的容器或者正在運(yùn)行的容器。

2.5 docker attach

可以看到容器啟動(dòng)命令的終端。

2.6 docker rm /docker rmi

  • docker rm 刪除容器;

  • docker rmi 刪除鏡像。

兩者后面一般接需要?jiǎng)h除的容器或者鏡像的ID,刪除鏡像可以接鏡像名:鏡像標(biāo)簽。

docker rm -v $(docker ps -aq -f status=exited)

直接刪除所有狀態(tài)為exited的容器。

docker rmi -v $(docker images -aq )
直接刪除所有的鏡像。

當(dāng)出現(xiàn)如下報(bào)錯(cuò)時(shí),是指還有鏡像與要?jiǎng)h除的鏡像有關(guān)聯(lián),無(wú)法刪除。

docker image inspect --format={{.RepoTags}} {{.Id}} {{.Parent}} $(docker image ls -q --filter since=c69ebce270d4)

這樣回輸出鏡像名稱:鏡像標(biāo)簽,和兩個(gè)長(zhǎng)ID前面為父鏡像ID,后面為子鏡像ID。

docker stop /docker start/docker restart/docker pause/docker unpause

2.7 docker stop /docker start/docker restart/docker pause/docker unpause

分別是停止容器,啟動(dòng)容器,重啟容器,暫停容器,開(kāi)啟容器。

docker restart 是先執(zhí)行docker stop 在執(zhí)行docker start。

--restart=always意味著無(wú)論容器因何種原因退出(包括正常退出),就立即重啟。該參數(shù)的形式還可以是--restart=on-failure:3,意思是如果啟動(dòng)進(jìn)程退出代碼非0,則重啟容器,最多重啟3次。(使用方式和--name一樣)

制作鏡像(以tomcat為例)

鏡像制作有兩種方式分別是docker commit 和docker build。我們下面所涉及的是通過(guò)Dockerfile來(lái)制作鏡像。

以tomcat9.0.67版本的包為例子制作鏡像。

3.1 Dockerfile文件

Dockerfile文件是docker build 定制鏡像的基礎(chǔ)。

docker build -f xxx -t yyy:1.0 .

最后的 . 表示會(huì)調(diào)用當(dāng)前目錄的包。

  • -f 參數(shù)是指定Dockerfile的路徑(如果是在當(dāng)前目錄下不需要指定;如果是在當(dāng)前目錄下且文件名非Dockerfile,需要指定文件)

  • -t 參數(shù)是指將制作好的鏡像命名和標(biāo)簽(如果不寫標(biāo)簽,標(biāo)簽將為latest)

不過(guò)在從網(wǎng)上的公共庫(kù)中下載的鏡像的標(biāo)簽為latest是指最新版本。

FROM 已centos:7為基礎(chǔ),制作鏡像。

ADD 將jdk,tomcat 包放在/usr/local下,ADD會(huì)直接解壓包。

COPY 和ADD用法一樣。

COPY和ADD都是復(fù)制文件到鏡像中,他們區(qū)別在于,如果ADD指定的文件是歸檔文件將會(huì)解壓出來(lái)。

  • RUN 運(yùn)行容器指定的命令,一般是下載一些必要的包,和一些基本的操作;

  • USER tomcat 這個(gè)是指將會(huì)以tomcat用戶運(yùn)行,不會(huì)是root用戶,前提有這個(gè)用戶

  • ENV 配置環(huán)境變量;

  • WORKDIR 設(shè)置工作目錄;

  • EXPOSE 設(shè)置暴露的端口,要與tomcat設(shè)置的端口一致;

  • CMD 容器啟動(dòng)使的命令;

  • ENTRYPOINT 容器啟動(dòng)時(shí)的命令;

  • Dockerfile里面可以有多個(gè)CMD和ENTRYPOINT命令,但是都是只有最后一個(gè)生效;CMD會(huì)被docker run后面的參數(shù)替換;CMD或docker run之后的參數(shù)會(huì)被當(dāng)做參數(shù)傳遞給ENTRYPOINT。

在制作鏡像的時(shí)候盡量少一些命令,每一個(gè)RUN、ENV等都會(huì)使鏡像的層數(shù)增加,這是不符合鏡像的原則。

3.2 準(zhǔn)備好需要的包

3.3 改包的名字(防止在使用鏡像的時(shí)候暴露版本)

記住不能直接改壓縮包的名字,否則解壓出來(lái)的還是原來(lái)壓縮包的名字。

3.4 更改配置文件

(更改配置文件的要求要根據(jù)基線的要求)

1)修改端口

修改server.xml 文件:

這里包含了兩部分,第一部分是HTTP訪問(wèn)頁(yè)面的配置:

  • port 是HTTP訪問(wèn)的端口;

  • maxHttpHeaderSize是HTTP請(qǐng)求和響應(yīng)頭的最大量,以字節(jié)為單位;

  • maxThreads是tomcat啟動(dòng)的最大線程數(shù);

  • minSpareThreads當(dāng)連接器第一次啟協(xié)創(chuàng)建線程的數(shù)目,確保至少有這么多的空閑線程可用;

  • maxSpareThreads允許存在空閑線程的最大數(shù)目;

  • enableLookups是否反查域名,若設(shè)為true, 則支持域名解析,可把 ip 地址解析為主機(jī)名;

  • acceptCount 當(dāng)所有的可能處理的線程都正在使用時(shí),在隊(duì)列中排隊(duì)請(qǐng)求的最大數(shù)目,隊(duì)列已滿,任何接收到的請(qǐng)求都會(huì)被拒絕;

  • connectionTimeout設(shè)置連接的超時(shí)值,以毫秒為單位;

  • disableUploadTimeout允許Servlet容器,正在執(zhí)行使用一個(gè)較長(zhǎng)的連接超時(shí)值,以使Servlet有較長(zhǎng)的時(shí)間來(lái)完成它的執(zhí)行;

  • redirectPort在需要基于安全通道的場(chǎng)合,把客戶請(qǐng)求轉(zhuǎn)發(fā)到基于SSL的端口。

第二部分是HTTPS訪問(wèn)的設(shè)置:
  • port是HTTPS訪問(wèn)的端口,與第一部分的redirectPort相同;

  • maxThreads是tomcat啟動(dòng)的最大線程數(shù);

  • SSLEnabled啟用HTTPS;

  • scheme設(shè)置協(xié)議的名字,SSL連接器設(shè)為”https”;

  • secure在SSL連接器可將其設(shè)置為true;

  • clientAuth設(shè)置是否對(duì)客戶端進(jìn)行HTTPS認(rèn)證;

  • sslProtocol要使用的SSL協(xié)議;

  • keystoreFile存儲(chǔ)了服務(wù)器HTTPS證書的keystore文件的位置;

  • keystorePass用于訪問(wèn)指定keystore文件的密碼。

將pattern和resloveHosts參數(shù)改成上述值。會(huì)在tomcat啟動(dòng)之后在logs文件下生成的日志會(huì)如下格式:

2)修改web.xml文件

修改結(jié)果如上,表示當(dāng) WEB 目錄中沒(méi)有默認(rèn)首頁(yè)如 index.html,index.jsp 等文件時(shí),不會(huì)列出目錄內(nèi)容。

修改結(jié)果如上,表示禁用非法HTTP方法例如PUT、DELETE等。

添加如上字段,表示強(qiáng)制HTTP轉(zhuǎn)HTTPS訪問(wèn)頁(yè)面。

添加如上字段,表示tomcat的頁(yè)面重定向,目錄是tomcat目錄下的/webapps/ROOT。

3)修改tomcat自帶的版本信息

首先進(jìn)入tomcat目錄下的lib目錄,找到改 catalina.jar。

將其解壓:

修改成如下:

再將修改的文件打包到j(luò)ar包里:

刪除解壓出來(lái)的文件:

如上是tomcat修改了版本之后日志的輸出。

4)禁用manager 權(quán)限

將tomcat目錄下的webapps目錄除了ROOT目錄全部刪除。

進(jìn)入ROOT目錄,并刪除全部文件和目錄。

創(chuàng)建如下文件:

  • error.jsp是錯(cuò)誤重定向的頁(yè)面;

  • index.html 是當(dāng)無(wú)其他應(yīng)用運(yùn)行時(shí)的訪問(wèn)頁(yè)面。

5)證書的制作

首先我們的證書是通過(guò)jdk制作的,所以需要保證我們的虛擬機(jī)有jdk環(huán)境否則無(wú)法運(yùn)行命令。

添加jdk環(huán)境:

使環(huán)境生效,并測(cè)試是否成功。

證書制作:

為了方便這里的所有的口令都是一致的,而且這里的文件沒(méi)有指定目錄,將會(huì)在當(dāng)前目錄下生成。



本文作者:彭剛朝(上海新炬中北團(tuán)隊(duì))

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129101.html

相關(guān)文章

  • Docker入門(一)

    摘要:作者麥冬白鯨魚是什么入門教程容器是與系統(tǒng)其他部分隔離開(kāi)的一系列進(jìn)程,運(yùn)行這些進(jìn)程所需的所有文件都由另一個(gè)鏡像提供,從開(kāi)發(fā)到測(cè)試再到生產(chǎn)的整個(gè)過(guò)程中,容器都具有可移植性和一致性??焖偃萜鞯膯?dòng)和創(chuàng)建無(wú)需啟動(dòng),可以實(shí)現(xiàn)秒級(jí)甚至毫秒級(jí)的啟動(dòng)。 作者: 麥冬 白鯨魚 docker 是什么 Docker 入門教程 Docker容器是與系統(tǒng)其他部分隔離開(kāi)的一系列進(jìn)程,運(yùn)行這些進(jìn)程所需的所有文件都由...

    zebrayoung 評(píng)論0 收藏0
  • 可能是把Docker的概念講的最清楚的一篇文章

    摘要:由于隔離的進(jìn)程獨(dú)立于宿主和其它的隔離的進(jìn)程,因此也稱其為容器。設(shè)計(jì)時(shí),就充分利用的技術(shù),將其設(shè)計(jì)為分層存儲(chǔ)的架構(gòu)。鏡像實(shí)際是由多層文件系統(tǒng)聯(lián)合組成。分層存儲(chǔ)的特征還使得鏡像的復(fù)用定制變的更為容易。前面講過(guò)鏡像使用的是分層存儲(chǔ),容器也是如此。 本文只是對(duì)Docker的概念做了較為詳細(xì)的介紹,并不涉及一些像Docker環(huán)境的安裝以及Docker的一些常見(jiàn)操作和命令。 閱讀本文大概需要15分...

    Jochen 評(píng)論0 收藏0
  • Docker在開(kāi)發(fā)、測(cè)試中的應(yīng)用

    摘要:對(duì)測(cè)試的影響讓單元測(cè)試運(yùn)行的更順暢單元測(cè)試驅(qū)動(dòng)開(kāi)發(fā)是一個(gè)很好的應(yīng)用程序開(kāi)發(fā)方式,單元測(cè)試往往也是和代碼一起被提交到代碼倉(cāng)庫(kù)中。但是很多單元測(cè)試通常依賴于很多其他服務(wù),而這些服務(wù)的標(biāo)準(zhǔn)化配置往往是一個(gè)難點(diǎn),如數(shù)據(jù)庫(kù)的搭建防火墻的配置等。 傳統(tǒng)的軟件開(kāi)發(fā)、測(cè)試、運(yùn)維需要三個(gè)團(tuán)隊(duì)在三個(gè)不同的環(huán)境中進(jìn)行,而三個(gè)環(huán)境的不同引發(fā)了很多的問(wèn)題。如:工作內(nèi)容的重復(fù);開(kāi)發(fā)環(huán)境中可運(yùn)行的程序在測(cè)試和運(yùn)維環(huán)...

    mating 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

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