日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

使用Docker將容器打成鏡像的方法步驟_docker

作者:談?wù)?974 ? 更新時(shí)間: 2022-07-27 編程語言

前言

工作中遇到三方閉源的中間件運(yùn)行起來某項(xiàng)特性不符合需求,但是鏡像提供方偏偏又沒有將配置文件掛載出來以供修改,這就導(dǎo)致要使軟件符合需求地運(yùn)行只能進(jìn)入到容器內(nèi)部修改配置文件后重啟,可謂非常之蛋疼。筆者平時(shí)對(duì) Docker 接觸不多,好在有同事提到 Docker 支持將運(yùn)行中的容器重新打包為鏡像,于是網(wǎng)上搜索資料,大致整理出以下步驟解決上面的問題,故有本文聊作記錄

  • 進(jìn)入運(yùn)行中的容器修改其配置文件,修改完成后重啟容器
  • 將已經(jīng)修改過配置文件的容器重新打成鏡像,使用該鏡像文件創(chuàng)建新的容器即可

1. 容器打成鏡像

Docker 提供了 commit 命令支持將容器重新打成鏡像文件,其命令格式如下所示

 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

命令中的選項(xiàng) [OPTIONS] 有如下候選:

Option 功能
-a 指定新鏡像作者
-c 使用 Dockerfile 指令來創(chuàng)建鏡像
-m 提交生成鏡像的說明信息
-p 在 commit 時(shí),將容器暫停

過程示例

執(zhí)行 sudo docker ps -a 查看本機(jī)上的所有容器,此處筆者選擇運(yùn)行中的consul 容器 eda05ad514f8 為例子

執(zhí)行 sudo docker commit -a "nathan" -m "create new img" eda05ad514f8 consul:v0 命令以容器為基礎(chǔ)生成新的鏡像 consul:v0,鏡像 id 為 5aeabb78080d2431b2a18809a24edee401d2d65349ce82f32f66b67cf32fc654

執(zhí)行 sudo docker image ls 命令查看本機(jī)上的 Docker 鏡像,可以看到已經(jīng)成功制作鏡像 consul:v0

2. 鏡像打包

鏡像文件經(jīng)常有在服務(wù)器之間傳輸?shù)男枨螅瑸榇?Docker 提供了鏡像打包和鏡像加載的命令

2.1 鏡像打包為 tar 文件

Docker 的 save 命令可將鏡像打包成 tar 文件,其格式如下

OPTIONS 選項(xiàng)只有 -o 用于指定輸出到的文件

docker save [OPTIONS] IMAGE [IMAGE...]

示例使用

sudo docker save -o consul:v0.tar consul:v0

命令執(zhí)行完成后在當(dāng)前目錄下生成了 tar 文件

2.2 從 tar 文件載入鏡像

Docker 的 load 命令可從 tar 文件載入鏡像,其命令格式如下

OPTIONS 選項(xiàng)可選

  • -i 用于指定載入的鏡像文件
  • -q 精簡(jiǎn)輸出信息
docker load [OPTIONS]

示例使用

由于筆者所有操作都是在同一臺(tái)機(jī)器上,所以先執(zhí)行 sudo docker image rm 5aeabb78080d 刪除之前的鏡像

執(zhí)行 sudo docker load -i consul:v0.tar 重新載入鏡像

原文鏈接:https://blog.csdn.net/weixin_45505313/article/details/125020076

欄目分類
最近更新