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

docker制作鏡像的兩種方式保姆級教程

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

現(xiàn)在的docker使用因為高效方便,基本已經(jīng)普遍通用,為了幫助一些小白更好上手掌握制作鏡像,作者寫了這篇文章,以期能夠更好的幫助你快捷使用docker

docker的簡介

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

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

虛擬機(VM)vs 容器

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

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

鏡像制作的兩種方式

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

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

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

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

拉取一個 Ubuntu 鏡像

docker pull ubuntu:22.04

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

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

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

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

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

我拿nginx舉例

更新包列表

apt update

安裝 nginx(舉例)

apt install -y nginx

驗證是否安裝成功

nginx -v

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

步驟3:在主機上封裝整個容器為新鏡像

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

查看已停止的容器

docker ps -a

將容器提交為新鏡像

docker commit my_container my_nginx_image:v1

my_container是容器名 my_nginx_image:v1是鏡像名加版本號。

步驟 4:驗證新鏡像

以nginx的鏡像舉例

查看本地鏡像

docker images

啟動新鏡像測試

docker run -it my_nginx_image:v1 /bin/bash

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

如果是模型或其他

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

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

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

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

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

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

步驟2:跑起你需要跑的

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

nginx start

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

步驟3:寫填寫Dockerfile

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

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 端口(文檔說明用途,實際運行需配合 -p)
EXPOSE 80

# 啟動 nginx(前臺運行,否則容器會退出)
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這個為鏡像名稱加版本號。注意后面還有一點哦別漏下,

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

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

步驟 5:運行鏡像

以nginx舉例哦

# 后臺運行,并映射 8080 主機端口到容器 80 端口
docker run -d -p 8080:80 --name my_web my_nginx_image_from_dockerfile:v1

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

到此dockerfile優(yōu)勢一目了然,可版本控制、可重復(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制作鏡像的兩種方式保姆級教程的文章就介紹到這了,更多相關(guān)docker如何制作鏡像內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

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

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

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

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

    在Ubuntu上使用Docker部署DeepSeek的詳細步驟

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

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

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

    dockerfile發(fā)布springboot項目實踐

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

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

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

    Docker Registry倉庫加密傳輸與登錄認證方式

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

    啟動docker錯誤systemctl status docker.service問題及解決

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

    在Ubuntu中安裝Docker教程

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

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

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

最新評論

富蕴县| 西和县| 勃利县| 江都市| 蕉岭县| 呈贡县| 若羌县| 海口市| 阆中市| 永昌县| 乌兰浩特市| 滦南县| 湘乡市| 谷城县| 琼结县| 兴业县| 马关县| 虎林市| 嘉定区| 太白县| 南城县| 米泉市| 乌兰浩特市| 大石桥市| 镇江市| 武城县| 和林格尔县| 金塔县| 渭源县| 廉江市| 兰州市| 博白县| 昭通市| 娱乐| 神木县| 秦安县| 伊金霍洛旗| 泸溪县| 三明市| 仁布县| 汉川市|