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

docker制作鏡像的兩種方式保姆級(jí)教程

 更新時(shí)間:2026年04月30日 08:41:42   作者:呼啦啦呼啦啦啦啦啦啦  
Docker 作為容器化技術(shù)的標(biāo)桿,其鏡像管理功能是開發(fā)者日常工作的核心環(huán)節(jié),無論是構(gòu)建、拉取還是優(yōu)化鏡像,掌握常用命令都能顯著提升效率,這篇文章主要介紹了docker制作鏡像的兩種方式,需要的朋友可以參考下

現(xiàn)在的docker使用因?yàn)楦咝Х奖悖疽呀?jīng)普遍通用,為了幫助一些小白更好上手掌握制作鏡像,作者寫了這篇文章,以期能夠更好的幫助你快捷使用docker

docker的簡介

Docker 是一個(gè)開源的容器化平臺(tái),它允許開發(fā)者將應(yīng)用程序及其依賴(如代碼、運(yùn)行時(shí)、系統(tǒng)工具、庫、配置文件等)打包到一個(gè)輕量級(jí)、可移植的容器中,并在任何支持 Docker 的環(huán)境中一致地運(yùn)行。

?? 核心思想:“一次構(gòu)建,到處運(yùn)行”(Build Once, Run Anywhere)

虛擬機(jī)(VM)vs 容器

特性容器虛擬機(jī)
隔離級(jí)別進(jìn)程級(jí)隔離硬件級(jí)隔離(Hypervisor)
啟動(dòng)速度毫秒級(jí)(快)秒級(jí)~分鐘級(jí)(慢)
資源占用低(共享宿主機(jī)內(nèi)核)高(每個(gè) VM 有完整 OS)
鏡像大小幾十 MB ~ 幾百 MB幾 GB 起
可移植性極高較低
典型代表Docker, containerdVMware, VirtualBox, Hyper-V

? 簡單說:容器 = 輕量級(jí)、秒啟、高效的應(yīng)用沙箱

鏡像制作的兩種方式

1.使用 docker commit 命令基于容器創(chuàng)建鏡像(適合快速測(cè)試,不推薦用于生產(chǎn))
2.使用 Dockerfile 編寫構(gòu)建指令,通過 docker build 創(chuàng)建鏡像(推薦方式,可復(fù)用、可版本控制)

方式一:使用 docker commit(從運(yùn)行中的容器創(chuàng)建鏡像)

?? 注意:這種方式適合臨時(shí)調(diào)試,但不符合“基礎(chǔ)設(shè)施即代碼”原則,不建議用于正式項(xiàng)目。說粗俗點(diǎn)就是救救火可以,但是正規(guī)開發(fā)不建議,而且有諸多限制且聽我細(xì)細(xì)分解。

步驟 1:拉取基礎(chǔ)鏡像并啟動(dòng)容器

拉取一個(gè) Ubuntu 鏡像

docker pull ubuntu:22.04

這里拉的是基礎(chǔ)鏡像,就是一個(gè)能跑ubuntu的極簡環(huán)境,也是因?yàn)闃O簡環(huán)境所以有些驅(qū)動(dòng)沒有跑一些復(fù)雜的軟件可能會(huì)出現(xiàn)驅(qū)動(dòng)丟失等錯(cuò)誤。
啟動(dòng)一個(gè)交互式容器(-it 表示交互終端)

docker run -it --name my_container ubuntu:22.04 /bin/bash

目的:配置模型運(yùn)行環(huán)境

步驟 2:在容器內(nèi)做修改(比如安裝軟件)

在容器內(nèi)安裝模型運(yùn)行所需各種庫

我拿nginx舉例

更新包列表

apt update

安裝 nginx(舉例)

apt install -y nginx

驗(yàn)證是否安裝成功

nginx -v

如果是模型等原理是相同的,但是你需要做的是下載各種依賴庫,然后通過docker cp的指令把需要的模型復(fù)制過去。然后使用指令讓模型跑起來,并能看到自己想要的結(jié)果即可。

步驟3:在主機(jī)上封裝整個(gè)容器為新鏡像

退出容器,退出容器指令exit

查看已停止的容器

docker ps -a

將容器提交為新鏡像

docker commit my_container my_nginx_image:v1

my_container是容器名 my_nginx_image:v1是鏡像名加版本號(hào)。

步驟 4:驗(yàn)證新鏡像

以nginx的鏡像舉例

查看本地鏡像

docker images

啟動(dòng)新鏡像測(cè)試

docker run -it my_nginx_image:v1 /bin/bash

進(jìn)入后可執(zhí)行 nginx -v 驗(yàn)證是否保留了安裝

如果是模型或其他

docker run -it --rm my_nginx_image:v1 /bin/bash

可以是這個(gè)指令用完就停止容器
從上面可見這種方式無法追溯變更過程,也不便于團(tuán)隊(duì)協(xié)作。

方式二:使用 Dockerfile(推薦方式強(qiáng)烈安利?。。。?/h2>

你選取一臺(tái)與上線環(huán)境架構(gòu)相同的線下機(jī)子,最好還能通網(wǎng)(方便下載各種需要的環(huán)境)

步驟1:下載需要的各種依賴

如果是通網(wǎng)的,直接用包管理器下就好了,apt install或yum install有啥用啥,能下好就好,自己大多數(shù)情況下不用改全局了,都幫你自動(dòng)配置

步驟2:跑起你需要跑的

確保該環(huán)境下你的東西能跑起來,拿我用包管理器下載的nginx舉例就是

nginx start

只要能跑起來并能查到他的線程,你就事半功倍了。

步驟3:寫填寫Dockerfile

創(chuàng)建個(gè)文件夾在文件夾下

nano Dockerfile

以包管理器的nginx舉例,它的Dockerfile如下

# 使用官方 Ubuntu 22.04 作為基礎(chǔ)鏡像
FROM ubuntu:22.04

# 設(shè)置環(huán)境變量,避免 apt 彈出交互提示
ENV DEBIAN_FRONTEND=noninteractive

# 更新系統(tǒng)并安裝 nginx
RUN apt update && \
    apt install -y nginx && \
    rm -rf /var/lib/apt/lists/*

# 暴露 80 端口(文檔說明用途,實(shí)際運(yùn)行需配合 -p)
EXPOSE 80

# 啟動(dòng) nginx(前臺(tái)運(yùn)行,否則容器會(huì)退出)
CMD ["nginx", "-g", "daemon off;"]

步驟4:構(gòu)建鏡像

在 Dockerfile 所在目錄執(zhí)行:

docker build -t my_nginx_image_from_dockerfile:v1 .

該指定為打包鏡像my_nginx_image_from_dockerfile:v1這個(gè)為鏡像名稱加版本號(hào)。注意后面還有一點(diǎn)哦別漏下,

-t:指定鏡像名和標(biāo)簽

.:表示當(dāng)前目錄為構(gòu)建上下文(context)

步驟 5:運(yùn)行鏡像

以nginx舉例哦

# 后臺(tái)運(yùn)行,并映射 8080 主機(jī)端口到容器 80 端口
docker run -d -p 8080:80 --name my_web my_nginx_image_from_dockerfile:v1

然后在宿主機(jī)瀏覽器訪問:http://localhost:8080,應(yīng)該能看到 Welcome to nginx! 頁面。

到此dockerfile優(yōu)勢(shì)一目了然,可版本控制、可重復(fù)構(gòu)建、清晰透明、適合 CI/CD。

步驟 6:內(nèi)卷?。。?/h3>

優(yōu)化 Dockerfile(多階段構(gòu)建、減小體積等)

使用 .dockerignore 忽略無關(guān)文件

合并 RUN 命令減少層數(shù)

使用更小的基礎(chǔ)鏡像(如 alpine)

多階段構(gòu)建(適用于編譯型語言如 Go、Java)

作者懶得碼字了,有興趣留言,作者看到了就繼續(xù)寫了。

總結(jié)

到此這篇關(guān)于docker制作鏡像的兩種方式保姆級(jí)教程的文章就介紹到這了,更多相關(guān)docker如何制作鏡像內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker-compose使用中遇到的坑及解決

    docker-compose使用中遇到的坑及解決

    這篇文章主要介紹了docker-compose使用中遇到的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • docker容器內(nèi)缺少命令的簡單解決辦法

    docker容器內(nèi)缺少命令的簡單解決辦法

    有時(shí)候在docker容器里面不僅沒有你期望的那些常用的命令,甚至沒有yum命令讓你去安裝那些常用的命令,下面這篇文章主要給大家介紹了關(guān)于docker容器內(nèi)缺少命令的簡單解決辦法,需要的朋友可以參考下
    2023-03-03
  • 在Ubuntu上使用Docker部署DeepSeek的詳細(xì)步驟

    在Ubuntu上使用Docker部署DeepSeek的詳細(xì)步驟

    docker是容器化技術(shù)的代表,它能夠?qū)?yīng)用程序及其依賴項(xiàng)打包成一個(gè)獨(dú)立的容器,在 DeepSeek 部署中,使用 docker 可以確保 deepseek - r1 在不同環(huán)境中具有一致的運(yùn)行狀態(tài),本文給大家介紹了在Ubuntu上使用Docker部署DeepSeek的詳細(xì)步驟,需要的朋友可以參考下
    2025-02-02
  • docker可視化管理工具portainer忘記密碼重置教程的實(shí)現(xiàn)

    docker可視化管理工具portainer忘記密碼重置教程的實(shí)現(xiàn)

    本文主要介紹了docker可視化管理工具portainer忘記密碼重置教程的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • dockerfile發(fā)布springboot項(xiàng)目實(shí)踐

    dockerfile發(fā)布springboot項(xiàng)目實(shí)踐

    使用Docker的其中一個(gè)目的,是為了更加簡單,方便的部署我們編寫的服務(wù),本文主要介紹了dockerfile發(fā)布springboot項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08
  • Docker 搭建集群MongoDB的實(shí)現(xiàn)步驟

    Docker 搭建集群MongoDB的實(shí)現(xiàn)步驟

    這篇文章主要介紹了Docker 搭建集群MongoDB的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Docker Registry倉庫加密傳輸與登錄認(rèn)證方式

    Docker Registry倉庫加密傳輸與登錄認(rèn)證方式

    本文詳細(xì)介紹了如何為Docker私有倉庫配置加密傳輸(TLS)和認(rèn)證功能,包括生成自簽名證書、配置客戶端證書、添加認(rèn)證文件和測(cè)試倉庫功能
    2025-12-12
  • 啟動(dòng)docker錯(cuò)誤systemctl status docker.service問題及解決

    啟動(dòng)docker錯(cuò)誤systemctl status docker.service問題及解決

    文章討論了啟動(dòng)Docker和執(zhí)行docker ps命令失敗的問題,但docker -v顯示成功,解決辦法包括在阿里云容器鏡像中找到鏡像加速器或使用公共鏡像地址,默認(rèn)情況下,Docker使用官方地址
    2025-01-01
  • 在Ubuntu中安裝Docker教程

    在Ubuntu中安裝Docker教程

    這篇文章主要介紹了在Ubuntu中安裝Docker教程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12
  • Docker安裝RabbitMQ AMQP協(xié)議及重要角色

    Docker安裝RabbitMQ AMQP協(xié)議及重要角色

    這篇文章主要為大家介紹了Docker安裝RabbitMQ AMQP協(xié)議和主要角色詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05

最新評(píng)論

康定县| 凤庆县| 昌都县| 甘德县| 延庆县| 莒南县| 麟游县| 汾阳市| 延津县| 灵寿县| 高碑店市| 奉新县| 吉首市| 高要市| 贡嘎县| 淳化县| 南安市| 武乡县| 重庆市| 海丰县| 洞口县| 丽水市| 积石山| 府谷县| 拜城县| 中牟县| 东丰县| 静海县| 孝感市| 五大连池市| 铅山县| 佛学| 溆浦县| 汕尾市| 璧山县| 门源| 财经| 达拉特旗| 沐川县| 三明市| 高密市|