最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker核心概念與鏡像倉庫操作指南

 更新時間:2025年09月03日 09:19:43   作者:敲上癮  
文章講解了Docker核心概念與操作,包括鏡像(只讀模板)、容器(運(yùn)行實(shí)例)、鏡像倉庫(存儲分發(fā)平臺)的定義及蛋糕、圖書館等類比,梳理了鏡像拉取、推送、搜索等常用命令,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧

一、名詞概念

Docker鏡像

Docker 鏡像:是一個只讀的模板,它包含了創(chuàng)建并運(yùn)行一個 Docker 容器所需的所有指令、文件系統(tǒng)和參數(shù)。
  可以把它想象成一個軟件的安裝包或模具。這個安裝包不僅包含了程序本身,還包含了它運(yùn)行所需的所有依賴項(如庫、環(huán)境變量、配置文件等)。

一個生動的比喻:做蛋糕

  1. Dockerfile(食譜):這是一個文本文件,里面寫滿了做蛋糕的指令,比如“準(zhǔn)備面粉”、“加入雞蛋”、“在 180°C 下烘烤 30 分鐘”。
  2. Docker 鏡像(蛋糕模具):你根據(jù)“食譜”(Dockerfile)的指令,準(zhǔn)備好所有原材料(代碼、依賴庫),并烤好了一個完整的、但還沒切的蛋糕。這個蛋糕被做成了一個標(biāo)準(zhǔn)的“模具”(鏡像)。這個模具是只讀的,保證了每次用它做出來的蛋糕都是一模一樣的。
  3. Docker 容器(切下來的蛋糕):當(dāng)你從“模具”(鏡像)里切下一塊蛋糕來吃時,這塊蛋糕就是一個容器。它是鏡像的一個運(yùn)行實(shí)例,是可讀可寫的。你可以在這塊蛋糕上加上草莓(對容器進(jìn)行修改),但這不會影響原來的模具(鏡像)。

Docker鏡像倉庫

Docker 鏡像倉庫:是一個集中存儲和分發(fā) Docker 鏡像的服務(wù),就像一個專門的應(yīng)用商店(如 iOS 的 App Store)或代碼倉庫(如 GitHub),但它只管理 Docker 鏡像。

你可以把它想象成一個圖書館

  • = Docker 鏡像
  • 圖書館 = Docker 鏡像倉庫
  • 借書/還書 = 拉取鏡像/推送鏡像

docker官方架構(gòu)圖:

docker鏡像倉庫架構(gòu)圖:

docker官網(wǎng):https://www.docker.com/

實(shí)際工作鏡像倉庫的使用

  • 開發(fā)環(huán)境:開發(fā)人員使用的一套環(huán)境
  • 測試環(huán)境:需求開發(fā)完成后,發(fā)布到供測試人員進(jìn)行測試的環(huán)境
  • 預(yù)發(fā)布環(huán)境:版本測試完成后,發(fā)布到和生產(chǎn)類似的環(huán)境,提前模擬生產(chǎn)發(fā)布
  • 生產(chǎn)環(huán)境:真正面向客戶的環(huán)境

二、Docker鏡像倉庫常用命令

docker命令學(xué)習(xí)
命令行:docker --help
官網(wǎng)學(xué)習(xí):www.docker.com -> Developers -> Documentation -> Reference ->Docker CLI

docker login

功能:登陸到一個 Docker 鏡像倉庫,如果未指定鏡像倉庫地址,默認(rèn)為官方倉庫 Docker Hub

語法:

docker login [OPTIONS] [SERVER]

關(guān)鍵參數(shù)

  • -u: 登陸的用戶名
  • -p: 登陸的密碼
    示例:
docker login
docker login https://index.docker.io/vi/
docker login -u zhangsan

docker pull
功能:從鏡像倉庫中拉取或者更新指定鏡像到本地
語法:

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

關(guān)鍵參數(shù):

  • -a:拉取所有 tagged 鏡像
  • --disable-content-trust:忽略鏡像的校驗(yàn),默認(rèn)開啟
    示例:
docker pull nginx:1.23.3

docker push
功能:將本地的鏡像上傳到鏡像倉庫,要先登陸到鏡像倉庫
語法:

docker push [OPTIONS] NAME[:TAG]

別名:docker image push
關(guān)鍵參數(shù):

  • -a:推送所有 tagged 鏡像
  • --disable-content-trust:忽略鏡像的校驗(yàn),默認(rèn)開啟

在推送push前需要在官網(wǎng)創(chuàng)建自己的倉庫。push推送時需要用這個格式的標(biāo)簽名:用戶名/倉庫名:標(biāo)簽
使用tag命令將要推送的鏡像起一個標(biāo)簽名:
比如:docker tag nginx:1.23.4 zhangsan/mybitnginx:v1.23.4
推送:

docker push zhangsan/mybitnginx:v1.23.4

docker search
功能:從 Docker Hub 查找鏡像
語法:

docker search [OPTIONS] TERM 

關(guān)鍵參數(shù):

  • --no-trunc:顯示完整的鏡像描述
  • -f <過濾條件>:列出收藏數(shù)不小于指定值的鏡像
    示例:
docker search -f stars=10 nginx

docker logout
功能:登出一個 Docker 鏡像倉庫,如果未指定鏡像倉庫地址,默認(rèn)為官方倉庫 Docker Hub
語法:

docker logout [SERVER]	

docker images
功能:列出本地鏡像
語法:

docker images [OPTIONS] [REPOSITORY[:TAG]]  

別名:docker image ls, docker image list
關(guān)鍵參數(shù):

  • -a:列出本地所有的鏡像(含中間映像層,默認(rèn)情況下,過濾掉中間映像層);
  • --digests:顯示鏡像的摘要信息;
  • -f:顯示滿足條件的鏡像;
  • --format:指定返回值的模板文件;
  • --no-trunc:顯示完整的鏡像信息;
  • -q:只顯示鏡像 ID。

docker image
功能:查看鏡像詳細(xì)信息
語法:

docker image inspect [OPTIONS] IMAGE [IMAGE...]

示例:

docker image list
docker image inspect 0f8498f13f3a
docker image inspect nginx:1.22.1

docker tag
功能:標(biāo)記本地鏡像,將其歸入某一倉庫
語法:

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]  

別名:docker image tag
示例:

docker tag ubuntu:22.04 zhangsan/myubuntu:v1.22.1

三、容器啟動相關(guān)指令

Nginx

  Nginx是一款高性能的開源軟件,最初被設(shè)計為“網(wǎng)頁服務(wù)器”,但現(xiàn)在更廣泛地被用作“反向代理”、“負(fù)載均衡器”和“HTTP 緩存”。
  可以把它想象成一個高效的“交通樞紐”或“萬能前臺”,它負(fù)責(zé)接收所有進(jìn)入網(wǎng)站的流量(請求),然后智能地將這些流量引導(dǎo)到正確的服務(wù)器(或服務(wù))上,同時還能處理安全、加速等多項任務(wù)。

  • 正向代理:代理客戶端(如 VPN),替客戶端去訪問網(wǎng)站,隱藏客戶的身份。
  • 反向代理:代理服務(wù)器端,替服務(wù)器接收客戶端的請求??蛻舳瞬⒉恢勒嬲幚硭埱蟮氖呛蠖说哪呐_服務(wù)器。

反向代理

  • 隱藏后端架構(gòu):保護(hù)內(nèi)部服務(wù)器(如 Node.js, Java, Python 應(yīng)用服務(wù)器)的安全,不直接暴露在公網(wǎng)上。
  • 負(fù)載均衡:當(dāng)你的網(wǎng)站訪問量很大時,一臺服務(wù)器會扛不住。你會擁有多臺完全一樣的服務(wù)器(形成一個服務(wù)器集群)。Nginx 作為反向代理,可以像一個大管家一樣,把收到的用戶請求“均勻地”分發(fā)給后端的多臺服務(wù)器。
    • 擴(kuò)展性:通過添加更多服務(wù)器來輕松應(yīng)對高流量。
    • 高可用性:如果其中一臺服務(wù)器宕機(jī)了,Nginx會自動停止將請求發(fā)往那臺壞掉的機(jī)器,保證服務(wù)不中斷。
    • 減輕單臺服務(wù)器壓力:每臺服務(wù)器都不會過載。

HTTP 緩存
Nginx 可以把后端服務(wù)器的響應(yīng)(如網(wǎng)頁、圖片)臨時存儲(緩存)在自己這里。
  工作流程:當(dāng)?shù)谝粋€用戶請求某個頁面時,Nginx 會去后端服務(wù)器獲取數(shù)據(jù),然后返回給用戶,同時自己保存一份。當(dāng)?shù)诙€用戶請求同一個頁面時,Nginx直接把自己緩存的內(nèi)容返回給用戶,而不用再去麻煩后端服務(wù)器。

好處:

  • 極大加快響應(yīng)速度:用戶感覺網(wǎng)站變得飛快。
  • 極大減輕后端服務(wù)器壓力:后端服務(wù)器只需要處理動態(tài)請求,靜態(tài)內(nèi)容由 Nginx 緩存提供。

Nginx安裝

檢查是否已經(jīng)安裝:ps -ef | grep nginx,如果有了就不用裝
下載安裝:

  • Ubuntu:sudo apt install nginx -y
  • CentOS:sudo yum install nginx -y
  • 啟動:systemctl restart nginx

查看效果:
打開瀏覽器輸入云服務(wù)器公網(wǎng)ip,會出現(xiàn)這樣的網(wǎng)頁:

docker run

功能: 創(chuàng)建一個新的容器并運(yùn)行一個命令
語法:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

別名:docker container run

關(guān)鍵參數(shù):

  • -d:后臺運(yùn)行容器,并返回容器 ID
  • -i:以交互模式運(yùn)行容器,通常與 -t 同時使用
  • -t:為容器重新分配一個偽輸入終端,通常與 -i 同時使用
  • -P:隨機(jī)端口映射,容器內(nèi)部端口隨機(jī)映射到主機(jī)的端口
  • -p:指定端口映射,格式為:主機(jī)(宿主)端口:容器端口
  • --name="nginx-lb":為容器指定一個名稱
  • -h "mars":指定容器的 hostname
  • -e username="ritchie":設(shè)置環(huán)境變量
  • --cpuset-cpus="0-2" or --cpuset-cpus="0,1,2":綁定容器到指定 CPU 運(yùn)行
  • -m:設(shè)置容器使用內(nèi)存最大值
  • --network="bridge":指定容器的網(wǎng)絡(luò)連接類型
  • --link=[]:添加鏈接到另一個容器
  • --volume, -v:綁定一個卷
  • -rm:shell 退出的時候自動刪除容器

示例:
到官網(wǎng)找到centos7
查看宿主機(jī)版本:cat /etc/*release*

將centos:7拉取到本地:docker pull centos:7
運(yùn)行centos:7:docker run centos:7

這里執(zhí)行docker run 不帶任何選項看上去沒有任何效果,其實(shí)這個容器已經(jīng)被打開了但因?yàn)闆]交互所以退出了。
使用docker ps -a可以看到歷史執(zhí)行過的容器

添加-it選項以交互形式運(yùn)行容器,如下:

注意:通常不會單獨(dú)使用-i或-t選項,需要兩個一起使用,即-it(常用于交互式容器)

接下來我們運(yùn)行一個nginx:1.24.0容器,如果本地沒有會自動從服務(wù)器拉取。

使用docker ps查看運(yùn)行狀態(tài)

  當(dāng)我們在瀏覽器中直接訪問服務(wù)器(宿主機(jī))時,訪問的是宿主機(jī)本身的服務(wù)(如果有的話)。Docker容器擁有獨(dú)立的網(wǎng)絡(luò)命名空間,外網(wǎng)無法直接訪問容器內(nèi)的Nginx服務(wù)。需要通過端口映射將宿主機(jī)的端口與容器的端口進(jìn)行綁定。例如,將宿主機(jī)的7070端口映射到容器Nginx的80端口后,當(dāng)訪問宿主機(jī)IP的7070端口時,流量會被自動轉(zhuǎn)發(fā)到容器內(nèi)部的80端口,從而訪問到容器中的Nginx服務(wù)。
如下-p選項的使用:

-P是綁定隨機(jī)端口,后面不用帶任何信息,該選項很少使用,如:docker run -P -d nginx:1.24.0

--name選項改變?nèi)萜髅?,使用新起的容器名與其交互會變得很方便。

-h:改變?nèi)萜髦鳈C(jī)名

-e:添加容器的環(huán)境變量

-m:設(shè)置容器使用內(nèi)存最大值,如下給限定容器內(nèi)存使用500MB
docker run -d -m 500m --name mynginx3 nginx:1.24.0
docker stats mynginx3

-rm選項:shell 退出的時候自動刪除容器,使用docker ps -a是查不到的。
如:docker run -it --name=mycentos4 -rm centos:7

docker ps

功能: 列出容器信息
語法:

docker ps [OPTIONS]

別名:docker container ls, docker container list, docker container ps

關(guān)鍵參數(shù):

  • -a:顯示所有的容器,包括未運(yùn)行的。
  • -f:根據(jù)條件過濾顯示的內(nèi)容。
  • --format:指定返回值的模板文件。如 json 或者 table
  • -l:顯示 latest 的容器。
  • -n:列出最近創(chuàng)建的 n 個容器。
  • --no-trunc:不截斷輸出。
  • -q:靜默模式,只顯示容器編號。
  • -s:顯示總的文件大小。

四、綜合實(shí)例

1.搭建Nginx服務(wù)

查找nginx鏡像版本:
方法一:shell中執(zhí)行docker search nginx如下:(不推薦)

方法二:登陸官網(wǎng)查找:

  1. 拉取鏡像:docker pull nginx:1.24.0
  2. 查看有沒有到本地:docker images nginx
  3. 看詳細(xì)信息:docker image inspect nginx:1.24.0
  4. 啟動Nginx容器:
  • 綁定宿主機(jī)7077端口
  • 將容器重命名為myweb
  • 將主機(jī)名命名為myweb.com
  • 添加環(huán)境變量myenv=test
  • 后端運(yùn)行

即:

docker run -p 7077:80 --name=myweb -h myweb.com -e myenv=test -d nginx:1.24.0

假設(shè)我們要調(diào)整首頁:
添加選項-it,以前臺交互的形式啟動

docker run -p 7078:80 --name=myweb -h myweb.com -e myenv=test -it nginx:1.24.0 bash

此時nginx并沒有啟動,需要再命令行輸入nginx啟動nginx。
修改首頁:

進(jìn)入目錄:cd /usr/share/nginx/html/

修改index.html中的內(nèi)容如:

效果如下:

2.Docker hub上創(chuàng)建私有倉庫

BusyBox介紹
  BusyBox 是一個集成了三百多個最常用 Linux 命令和工具的軟件。例如 ls、cat 和 echo 、grep、find、mount 以及 telnet等。有些人將 BusyBox 稱為 Linux 工具里的瑞士軍刀。而所有這一切功能卻只有區(qū)區(qū) 1M 左右的大小。因海外帶寬較小,我們拉取該鏡像推送到自己的倉庫。

CentOS安裝:

  1. 創(chuàng)建一個目錄:mkdir -p /data/myhou
  2. 進(jìn)入目錄:cd /data/myhou
  3. 下載在該目錄下:wget https://busybox.net/downloads/binaries/1.28.1-defconfig-multiarch/busybox-x86_64 --no-check-certificate
  4. 重命名:mv busybox-x86_64 busybox(可不做)
  5. 授權(quán):chmod +x busybox
  6. 測試:./busybox ls

Ubuntu安裝:

  • apt install busybox -y

到Docker官網(wǎng)創(chuàng)建倉庫:

  1. 拉取一個busybox:docker pull busybox:1.35.0
  2. 根據(jù)推送規(guī)則給busybox設(shè)置標(biāo)簽:docker tag busybox:1.35.0 saal0/qsy_box:v1.0
  3. 登陸docker(如果沒有登陸):docker login
  4. 推送到倉庫:docker push saal0/qsy_box:v1.0

除此之外還可以推送到騰訊云,阿里云等。登陸騰訊云/阿里云官網(wǎng),搜索容器鏡像服務(wù),就可以搭建自己的倉庫,注意推送和拉取規(guī)則。這里就不演示。

到此這篇關(guān)于Docker核心概念與鏡像倉庫操作指南的文章就介紹到這了,更多相關(guān)docker鏡像倉庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • CentOS7.2下安裝docker容器教程

    CentOS7.2下安裝docker容器教程

    Docker是一個開源的軟件部署工具,是輕量級的應(yīng)用容器框架,它可以讓創(chuàng)建和管理 CentOS容器變得簡單。容器就像是輕量級的虛擬機(jī),并且可以以毫秒級的速度來啟動或停止。Docker 幫助系統(tǒng)管理員和程序員在容器中開發(fā)應(yīng)用程序,并且可以擴(kuò)展到成千上萬的節(jié)點(diǎn)。
    2018-03-03
  • Docker快速部署MinIO對象存儲服務(wù)的最新實(shí)戰(zhàn)指南

    Docker快速部署MinIO對象存儲服務(wù)的最新實(shí)戰(zhàn)指南

    MinIO作為高性能的云原生對象存儲服務(wù),結(jié)合Docker容器技術(shù)可以快速搭建企業(yè)級存儲系統(tǒng),本文介紹了從零開始的Docker部署全流程,有需要的可以了解下
    2025-05-05
  • docker save鏡像時進(jìn)行g(shù)zip壓縮方式

    docker save鏡像時進(jìn)行g(shù)zip壓縮方式

    文章介紹了三種Docker鏡像壓縮方法:管道壓縮(推薦,使用gzip/pigz,速度快)、xz壓縮(高壓縮比但慢)、及先保存再壓縮(不推薦,占空間),建議日常用管道gzip,傳輸用xz,避免直接保存未壓縮文件
    2025-08-08
  • cgroup?blkio子系統(tǒng)對容器的讀寫限速詳解

    cgroup?blkio子系統(tǒng)對容器的讀寫限速詳解

    這篇文章主要為大家介紹了cgroup?blkio子系統(tǒng)對容器的讀寫限速詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Docker load之后鏡像名字為none問題解決方法

    Docker load之后鏡像名字為none問題解決方法

    這篇文章主要介紹了Docker load之后鏡像名字為none問題解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • win10子系統(tǒng)ubuntu(WSL) 安裝Docker的教程(圖文詳解)

    win10子系統(tǒng)ubuntu(WSL) 安裝Docker的教程(圖文詳解)

    現(xiàn)在 Docker 有專門的 Win10 專業(yè)版系統(tǒng)的安裝包,需要開啟Hyper-V,具體開啟方法文中給大家介紹的很詳細(xì),這篇文章主要介紹了win10子系統(tǒng)ubuntu(WSL) 安裝Docker,需要的朋友可以參考下
    2019-10-10
  • Docker介紹與最實(shí)用最常見指令

    Docker介紹與最實(shí)用最常見指令

    Docker 是目前最流行的容器化技術(shù)之一,它通過輕量級的虛擬化方式,幫助開發(fā)者快速構(gòu)建、部署和運(yùn)行應(yīng)用程序,本文介紹了Docker的常見和實(shí)用指令,包括鏡像、容器、網(wǎng)絡(luò)和數(shù)據(jù)卷的管理,感興趣的朋友跟隨小編一起看看吧
    2026-01-01
  • Linux 離線安裝docker的過程(一鍵式安裝)

    Linux 離線安裝docker的過程(一鍵式安裝)

    這篇文章主要介紹了Linux 離線安裝docker(一鍵式安裝)的方法,非常簡單,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • docker安裝ubuntu20.04全過程

    docker安裝ubuntu20.04全過程

    文章介紹了在Ubuntu 20.04上安裝Docker的流程:通過一鍵安裝腳本安裝,驗(yàn)證安裝狀態(tài),下載鏡像,賦予執(zhí)行權(quán)限,更換軟件源以提升下載速度,并在VSCode中安裝Docker插件實(shí)現(xiàn)容器管理
    2025-09-09
  • 教你如何利用docker-maven-plugin自動化部署

    教你如何利用docker-maven-plugin自動化部署

    本文通過兩個例子給大家講解如何利用docker-maven-plugin自動化部署,給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-09-09

最新評論

白玉县| 梁平县| 搜索| 于田县| 巴林左旗| 鄂尔多斯市| 太白县| 云安县| 岳普湖县| 大冶市| 建湖县| 镇江市| 甘德县| 固阳县| 杭州市| 保山市| 石城县| 东阳市| 岐山县| 九江县| 云林县| 温泉县| 敦煌市| 永修县| 永仁县| 铅山县| 武定县| 乌拉特前旗| 延寿县| 汕尾市| 濉溪县| 孝昌县| 新郑市| 富裕县| 安化县| 五原县| 九寨沟县| 东丰县| 孟津县| 马山县| 曲水县|