docker如何查詢鏡像版本信息
docker查詢鏡像版本信息
1. 官網(wǎng)查詢
訪問https://hub.docker.com/搜索mysql
選擇第一個,然后點擊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 是一個開源的應用容器引擎,是虛擬化的一種輕量級替代技術。Docker 可以讓開發(fā)者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現(xiàn)虛擬化。
容器是完全使用沙箱機制,相互之間不會有任何接口,開銷很低。docker解決了服務器昂貴的問題,生產(chǎn)環(huán)境和測試環(huán)境不一致的問題。
什么要使用docker而不使用虛擬機
1).虛擬機的缺點
(1).資源占用多:虛擬機運行需要大量的內存、硬盤和CPU,而且是獨占這些資源
(2).啟動慢:虛擬機也是個操作系統(tǒng),啟動很慢
2).docker優(yōu)點
(1).體積小、占用資源少
(2).啟動快:docker是個容器,是個進程,既然是進程所以啟動比虛擬機(操作系統(tǒng))快
(3).進程隔離:在一臺服務器上可以部署多個docker容器,而且互不干擾
(4).遷移輕松:docker可以制作鏡像進行遷移,非常容易
docker有什么用
1).搭建微服務環(huán)境:一個服務器可以安裝多個容器,實現(xiàn)微服務,并且降低服務器成本
2).降低服務器成本:在少量的服務器上可以通過docker安裝多個容器,不用購買多個服務器
3).提供一次性的環(huán)境:docker可以將運行項目所需要的資源、環(huán)境全部集中打包在一個鏡像內,無需再去配置搭建項目運行所需要的資源和環(huán)境(無需重復配置),有利于測試、開發(fā)和部署
docker基本概念
1).image(鏡像):Docker 鏡像可以看作是一個特殊的文件系統(tǒng),提供了容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數(shù)(環(huán)境變量、端口等),但是鏡像在構建之后就不會被改變。
2).Container(容器):Docker 容器是一個開源的應用容器引擎,讓開發(fā)者可以以統(tǒng)一的方式打包他們的應用以及依賴包到一個可移植的容器中,然后發(fā)布到任何安裝了docker引擎的服務器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app)。幾乎沒有性能開銷,可以很容易地在機器和數(shù)據(jù)中心中運行。
3).Dockerfile :Dockerfile是一個指令的集合文件,可以利用Dockerfile 制作一個鏡像
docker基本命令
1).查詢鏡像
docker search 鏡像名稱
2).拉取鏡像
docker pull 鏡像名稱
3).啟動容器(以tomcat作為實例)
docker run -d --name fist_tomcat --privileged=true -e TZ="Asia/Shanghai" -v /etc/localtime:/etc/localtime -p 8081:8080 docker.io/tomcat
-d
表示以“守護模式”執(zhí)行/root/run.sh腳本,此時 Tomcat 控制臺不會出現(xiàn)在輸出終端上。-p
表示宿主機(8081)與容器的端口映射(8080,Tomcat容器固定的端口為8080,必須映射到8080)–name
表示容器名稱,用一個有意義的名稱命名即可。-v
表示需要將本地哪個目錄掛載到容器中,格式:-v <宿主機目錄>:<容器目錄>-e
運行上海時區(qū)格式–privileged=true
開啟特權,可以設置容器里的內核參數(shù)-e TZ=“Asia/Shanghai”
-v /etc/localtime:/etc/localtime
都是用來解決容器時區(qū)的問題
Dockerfile 基本命令
1).FROM 基礎驚喜
:基于那個鏡像作為基礎去構建新的鏡像
2).COPY 源文件 目標目錄
:復制指令,從上下文目錄中復制文件或者目錄到容器里指定路徑
3).ADD 源文件 目標目錄
:和COPY基本一樣,但是ADD會自動解壓壓縮包
4).RUN
:執(zhí)行命令
5).CMD
:執(zhí)行命令(和RUN類似,但二者運行的時間點不同,CMD 在docker run 時運行,RUN 是在 docker build)
(1).注意:在執(zhí)行docker run命令后,CMD命令指定的程序會被docker run后面的程序所覆蓋
(2).注意:如果 Dockerfile 中如果存在多個 CMD 指令,僅最后一個生效
6).ENTRYPOINT
:類似于CMD,但是ENTRYPOINT的指令參數(shù)不會被docker run后面的指令所覆蓋
7).ENV
:設置環(huán)境變量
8).VOLUME 系統(tǒng)目錄 docker目錄
:掛載目錄,類似于-V
9).EXPOSE 8080
:聲明端口
10).WORKDIR
:類似于cd命令,進入那個文件夾
運行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
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
解決docker鏡像(centos系統(tǒng))中無sudo命令問題
這篇文章主要介紹了解決docker鏡像(centos系統(tǒng))中無sudo命令問題,具有很好的參考價值,希望對大家有所幫助,2023-11-11更改Docker默認數(shù)據(jù)目錄解決部署空間不足問題
隨著使用 Docker 的時間增加,存儲在默認數(shù)據(jù)目錄(通常是 /var/lib/docker)中的數(shù)據(jù)量也會不斷增大,最終可能導致服務器上的存儲空間不足,這篇文章將詳細介紹如何更改 Docker 的默認數(shù)據(jù)目錄,以便在服務器上釋放存儲空間并優(yōu)化資源利用,需要的朋友可以參考下2024-06-06docker中通過nginx+confd動態(tài)生成配置的解決方案
這篇文章主要介紹了docker:nginx+confd動態(tài)生成配置,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03基于alpine用dockerfile創(chuàng)建的爬蟲Scrapy鏡像的實現(xiàn)
這篇文章主要介紹了基于alpine用dockerfile創(chuàng)建的爬蟲Scrapy鏡像的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12docker容器下配置jupyter notebook的操作
這篇文章主要介紹了docker容器下配置jupyter notebook的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03