docker如何查詢鏡像版本信息
docker查詢鏡像版本信息
1. 官網(wǎng)查詢
訪問https://hub.docker.com/搜索mysql

選擇第一個,然后點(diǎn)擊tag

2. curl 訪問url
docker search mysql

curl https://registry.hub.docker.com/v1/repositories/mysql/tags\
| tr -d '[\[\]" ]' | tr '}' '\n'\
| awk -F: -v image='mysql' '{if(NR!=NF && $3 != ""){printf("%s:%s\n",image,$3)}}'

什么是docker
Docker 是一個開源的應(yīng)用容器引擎,是虛擬化的一種輕量級替代技術(shù)。Docker 可以讓開發(fā)者打包他們的應(yīng)用以及依賴包到一個輕量級、可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實(shí)現(xiàn)虛擬化。
容器是完全使用沙箱機(jī)制,相互之間不會有任何接口,開銷很低。docker解決了服務(wù)器昂貴的問題,生產(chǎn)環(huán)境和測試環(huán)境不一致的問題。
什么要使用docker而不使用虛擬機(jī)
1).虛擬機(jī)的缺點(diǎn)
(1).資源占用多:虛擬機(jī)運(yùn)行需要大量的內(nèi)存、硬盤和CPU,而且是獨(dú)占這些資源
(2).啟動慢:虛擬機(jī)也是個操作系統(tǒng),啟動很慢
2).docker優(yōu)點(diǎn)
(1).體積小、占用資源少
(2).啟動快:docker是個容器,是個進(jìn)程,既然是進(jìn)程所以啟動比虛擬機(jī)(操作系統(tǒng))快
(3).進(jìn)程隔離:在一臺服務(wù)器上可以部署多個docker容器,而且互不干擾
(4).遷移輕松:docker可以制作鏡像進(jìn)行遷移,非常容易
docker有什么用
1).搭建微服務(wù)環(huán)境:一個服務(wù)器可以安裝多個容器,實(shí)現(xiàn)微服務(wù),并且降低服務(wù)器成本
2).降低服務(wù)器成本:在少量的服務(wù)器上可以通過docker安裝多個容器,不用購買多個服務(wù)器
3).提供一次性的環(huán)境:docker可以將運(yùn)行項目所需要的資源、環(huán)境全部集中打包在一個鏡像內(nèi),無需再去配置搭建項目運(yùn)行所需要的資源和環(huán)境(無需重復(fù)配置),有利于測試、開發(fā)和部署
docker基本概念
1).image(鏡像):Docker 鏡像可以看作是一個特殊的文件系統(tǒng),提供了容器運(yùn)行時所需的程序、庫、資源、配置等文件外,還包含了一些為運(yùn)行時準(zhǔn)備的一些配置參數(shù)(環(huán)境變量、端口等),但是鏡像在構(gòu)建之后就不會被改變。
2).Container(容器):Docker 容器是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以以統(tǒng)一的方式打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何安裝了docker引擎的服務(wù)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會有任何接口(類似 iPhone 的 app)。幾乎沒有性能開銷,可以很容易地在機(jī)器和數(shù)據(jù)中心中運(yùn)行。
3).Dockerfile :Dockerfile是一個指令的集合文件,可以利用Dockerfile 制作一個鏡像
docker基本命令
1).查詢鏡像
docker search 鏡像名稱
2).拉取鏡像
docker pull 鏡像名稱
3).啟動容器(以tomcat作為實(shí)例)
docker run -d --name fist_tomcat --privileged=true -e TZ="Asia/Shanghai" -v /etc/localtime:/etc/localtime -p 8081:8080 docker.io/tomcat
-d表示以“守護(hù)模式”執(zhí)行/root/run.sh腳本,此時 Tomcat 控制臺不會出現(xiàn)在輸出終端上。-p表示宿主機(jī)(8081)與容器的端口映射(8080,Tomcat容器固定的端口為8080,必須映射到8080)–name表示容器名稱,用一個有意義的名稱命名即可。-v表示需要將本地哪個目錄掛載到容器中,格式:-v <宿主機(jī)目錄>:<容器目錄>-e運(yùn)行上海時區(qū)格式–privileged=true開啟特權(quán),可以設(shè)置容器里的內(nèi)核參數(shù)-e TZ=“Asia/Shanghai”-v /etc/localtime:/etc/localtime都是用來解決容器時區(qū)的問題
Dockerfile 基本命令
1).FROM 基礎(chǔ)驚喜:基于那個鏡像作為基礎(chǔ)去構(gòu)建新的鏡像
2).COPY 源文件 目標(biāo)目錄:復(fù)制指令,從上下文目錄中復(fù)制文件或者目錄到容器里指定路徑
3).ADD 源文件 目標(biāo)目錄:和COPY基本一樣,但是ADD會自動解壓壓縮包
4).RUN:執(zhí)行命令
5).CMD:執(zhí)行命令(和RUN類似,但二者運(yùn)行的時間點(diǎn)不同,CMD 在docker run 時運(yùn)行,RUN 是在 docker build)
(1).注意:在執(zhí)行docker run命令后,CMD命令指定的程序會被docker run后面的程序所覆蓋
(2).注意:如果 Dockerfile 中如果存在多個 CMD 指令,僅最后一個生效

6).ENTRYPOINT:類似于CMD,但是ENTRYPOINT的指令參數(shù)不會被docker run后面的指令所覆蓋
7).ENV:設(shè)置環(huán)境變量
8).VOLUME 系統(tǒng)目錄 docker目錄:掛載目錄,類似于-V
9).EXPOSE 8080:聲明端口
10).WORKDIR:類似于cd命令,進(jìn)入那個文件夾
運(yùn)行Dockerfile命令:
docker build -t 容器名稱:版本 .
.是上下文路徑,也就是dockerFile所在的目錄
docker build -t tomcat:v1.3 .
Dockerfile示例

FROM tomcat:8.5.38-jre8
ARG JAR_PATH=./target
#1.刪除ROOT文件夾,避免war包不解壓,[2,3]指定時區(qū)
RUN rm -rf /usr/local/tomcat/webapps/ROOT \
&& /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo 'Asia/Shanghai' >/etc/timezone
ADD ${JAR_PATH}/*.war /usr/local/tomcat/webapps/ROOT.war
CMD ["/usr/local/tomcat/bin/catalina.sh", "run"]
EXPOSE 8080
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker中容器數(shù)據(jù)卷(Data Volume)和數(shù)據(jù)管理詳解
本文主要給大家介紹了關(guān)于Docker中容器數(shù)據(jù)卷(Data Volume)和數(shù)據(jù)管理的相關(guān)資料,文中介紹的很詳細(xì),對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-02-02
Docker安裝分布式vLLM的實(shí)現(xiàn)步驟
本文主要介紹了Docker使用vLLM庫進(jìn)行分布式推理和服務(wù)部署,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-03-03
IDEA集成Docker實(shí)現(xiàn)一鍵部署的詳細(xì)過程
這篇文章主要介紹了IDEA集成Docker實(shí)現(xiàn)一鍵部署,Docker基于Windows集成IDEA,本文分步驟通過圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
Spring Boot應(yīng)用通過Docker發(fā)布部署的流程分析
將Spring Boot項目部署到docker中有兩種方法,手動部署和插件部署,本文通過實(shí)例代碼介紹了idea創(chuàng)建spring boot項目的詳細(xì)過程,感興趣的朋友一起看看吧2021-09-09
Docker跨服務(wù)器通信Overlay解決方案(上)之 Consul單實(shí)例
這篇文章主要介紹了Docker跨服務(wù)器通信Overlay解決方案(上)之 Consul單實(shí)例,本文通過場景分析實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12
綁定Dokcer容器到主機(jī)指定網(wǎng)卡的方法
這篇文章主要介紹了綁定 Dokcer 容器到主機(jī)指定網(wǎng)卡的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03

