準(zhǔn)備工作及安裝
https://docs.docker.com/engine/install/centos/
1.4 安裝存儲(chǔ)庫(kù)
1)安裝docker需要的工具包
我們可以通過(guò)修改daemon.json 文件添加其它的倉(cāng)庫(kù)地址,進(jìn)行鏡像上傳和下載。
修改此配置文件一定要先重啟daemon文件、重啟docker。
設(shè)置開(kāi)機(jī)自啟。
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)簽。
-d參數(shù)使容器后臺(tái)啟動(dòng),會(huì)輸出容器的長(zhǎng)ID。
-p參數(shù)指定虛擬機(jī)對(duì)容器的端口的映射(虛擬機(jī)端口:容器端口)。
--name參數(shù)指定容器的名字,不指定名字系統(tǒng)會(huì)隨機(jī)指定名字。
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。
制作鏡像(以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的端口。
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文件的密碼。
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。
將其解壓:
修改成如下:
如上是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è)面。
首先我們的證書是通過(guò)jdk制作的,所以需要保證我們的虛擬機(jī)有jdk環(huán)境否則無(wú)法運(yùn)行命令。
添加jdk環(huán)境:
使環(huán)境生效,并測(cè)試是否成功。
證書制作:
為了方便這里的所有的口令都是一致的,而且這里的文件沒(méi)有指定目錄,將會(huì)在當(dāng)前目錄下生成。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129101.html
摘要:作者麥冬白鯨魚是什么入門教程容器是與系統(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)程所需的所有文件都由...
摘要:由于隔離的進(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分...
摘要:對(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)...
閱讀 1359·2023-01-11 13:20
閱讀 1708·2023-01-11 13:20
閱讀 1215·2023-01-11 13:20
閱讀 1908·2023-01-11 13:20
閱讀 4166·2023-01-11 13:20
閱讀 2761·2023-01-11 13:20
閱讀 1402·2023-01-11 13:20
閱讀 3674·2023-01-11 13:20