国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Docker打包容器并跨服務(wù)器傳輸重建加載load鏡像Unable to find image :latest問題解決 及 Docker在容器未啟動(dòng)的情況下如何修改容器中文件

這篇具有很好參考價(jià)值的文章主要介紹了Docker打包容器并跨服務(wù)器傳輸重建加載load鏡像Unable to find image :latest問題解決 及 Docker在容器未啟動(dòng)的情況下如何修改容器中文件。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、Docker打包容器并跨服務(wù)器傳輸重建加載load鏡像Unable to find image :latest

????使用docker就是因?yàn)閐ocker可以快速進(jìn)行多服務(wù)器部署,所以需要對(duì)部署好的環(huán)境進(jìn)行打包復(fù)制并快速在其它的服務(wù)器上進(jìn)行重建。

? ? 其實(shí)使用起來非常簡(jiǎn)單,使用docker export從運(yùn)行的容器中導(dǎo)出文件,,使用import命令生成鏡像批量傳至目標(biāo)服務(wù)器然后在目標(biāo)服務(wù)器上進(jìn)行l(wèi)oad加載鏡像即可,過程如下:

#查看容器并備份容器
user@u25:~# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
4da5b8faf1a0        nginx               "nginx -g 'daemon of…"   45 hours ago        Up 18 hours         0.0.0.0:80->80/tcp       nginx
2af5436df1e2        deluxo/php7.1-fpm   "docker-php-entrypoi…"   2 days ago          Up 17 hours         0.0.0.0:9000->9000/tcp   php
user@u25:~# docker export 2af5436df1e2 >php_kermit.tar
user@u25:~# docker export 4da5b8faf1a0 > nginx_kermit.tar
user@u25:~# ll -h |grep _kermit
-rw-r--r--  1 root  root  123M Nov  8 11:49 nginx_kermit.tar
-rw-r--r--  1 root  root  794M Nov  8 11:50 php_kermit.tar
#生成鏡像文件
user@u25:~# cat nginx_kermit.tar php_kermit.tar | docker import - kermit_nginx_php:demo
sha256:9fe17159411e655a200dec3a0c989451f3c268cea5f02c6797d2fb1f716ec49f
#備份鏡像
user@u25:~# docker save kermit_nginx_php > kermit_nginx_php_save.tar
user@u25:~# ll -h | grep kermit
-rw-r--r--  1 root  root  916M Nov  8 12:37 kermit_nginx_php_save.tar
-rw-r--r--  1 root  root  123M Nov  8 11:49 nginx_kermit.tar
-rw-r--r--  1 root  root  794M Nov  8 11:50 php_kermit.tar
#通過scp命令傳輸?shù)搅硪慌_(tái)服務(wù)器:
kermit@n28:~$ scp kermit_nginx_php_save.tar root@111.14.36.97:/root/
kermit_nginx_php_save.tar              100%  916MB 181.8MB/s   00:05

#在另一臺(tái)服務(wù)器上安裝docker,并導(dǎo)入鏡像
kermit@u27:~# docker load <kermit_nginx_php_save.tar
6cba44dfc730: Loading layer [==================================================>]    960MB/960MB
Loaded image: kermit_nginx_php:demo
#這里顯示的就是一個(gè)鏡像,看來一次只能打包一個(gè)容器成鏡像
kermit@u27:~# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
kermit_nginx_php    demo                9fe17159411e        About an hour ago   125MB

????從上面顯示來看,最后顯示的是一個(gè)鏡像,說明在原docker服務(wù)上面打包時(shí)一次只能打包一個(gè)容器成鏡像,不能支持多個(gè)容器一起打包成一個(gè)。

? ? 我在使用上面的方式load鏡像之后啟動(dòng)時(shí)報(bào)錯(cuò):Unable to find image 鏡像名稱:latest locally docker: Error response from daemon: pull access denied for 鏡像名稱, repository does not exist or may require docker login.不知道是為什么。

? ? 有可能有是我使用的兩個(gè)容器進(jìn)行的打包,后來我使用了以下的做法重新做了一套成功了。兩種方式暫時(shí)先都放這里吧,回頭再看。成功的方式使用如下:

#另一種方式:
user@u25:/data01/nginx# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
4da5b8faf1a0        nginx               "nginx -g 'daemon of…"   47 hours ago        Up 20 hours         0.0.0.0:80->80/tcp       nginx
2af5436df1e2        deluxo/php7.1-fpm   "docker-php-entrypoi…"   2 days ago          Up 19 hours         0.0.0.0:9000->9000/tcp   php
#1. 把當(dāng)前的容器提交為一個(gè)鏡像
user@u25:/data01/nginx# docker commit nginx kermit_nginx
sha256:098b1d0148802062ac09affee44a671ff7eaf1ea88f8ef0251b9542e21e2f979
#2.將鏡像存為tar文件
user@u25:/data01/nginx# docker save kermit_nginx > kermit_nginx2.tar
user@u25:/data01/nginx#
#3.將鏡像文件通過scp傳輸?shù)侥繕?biāo)服務(wù)器
kermit@u18:~$ scp ./kermit_nginx2.tar  root@111.14.36.97:/root/kermit_nginx2.tar
kermit_nginx2.tar 
#4.在另一臺(tái)服務(wù)器上加載鏡像
kermit@u27:~# docker load -i kermit_nginx2.tar
b67d19e65ef6: Loading layer [==================================================>]   72.5MB/72.5MB
6eaad811af02: Loading layer [==================================================>]  57.54MB/57.54MB
a89b8f05da3a: Loading layer [==================================================>]  3.584kB/3.584kB
c8f904504379: Loading layer [==================================================>]  10.75kB/10.75kB
Loaded image: kermit_nginx:latest
#5.在此鏡像上去啟動(dòng)程序,執(zhí)行成功

????除此之外,有必要了解一下:docker save和docker export兩個(gè)方法的區(qū)別:
對(duì)于Docker Save方法,會(huì)保存該鏡像的所有歷史記錄,Docker Export不會(huì)保留歷史記錄,沒有commit歷史。

docker save保存的是鏡像(image),docker export保存的是容器(container);
docker load用來載入鏡像包,docker import用來載入容器包,兩者都會(huì)恢復(fù)為鏡像;
docker load不能對(duì)載入的鏡像重命名,而docker import可以為鏡像指定新名稱。

? ? 從這里可以對(duì)上面的兩個(gè)方法進(jìn)行對(duì)比。第一個(gè)方法先進(jìn)行export,再進(jìn)行import 然后進(jìn)行save,而第二個(gè)方法是commit之后直接save。從上面對(duì)兩方法的了解可以看到docker save和docker load是對(duì)應(yīng)的,第一個(gè)方法里的export和import感覺沒有必要,因此第二個(gè)方法看起來更合理。

二、Docker在容器未啟動(dòng)的情況下如何修改容器中的文件?

????docker容器在啟動(dòng)后進(jìn)入容器中修改了部分文件,之后重啟容器失敗,此時(shí)有點(diǎn)束手無策,因?yàn)椴粏?dòng)容器就不能exec進(jìn)入容器修改文件,但不修改正確文件又不能啟動(dòng)容器,陷入了死循環(huán)。好像沒有辦法。

????但docker不會(huì)這么笨的,另外雖然docker容器沒有啟動(dòng),但docker整個(gè)都安裝在本地磁盤上,它肯定能支持在磁盤上找到其對(duì)應(yīng)位置直接修改文件。不錯(cuò),docker就是可以直接在系統(tǒng)上修改其文件內(nèi)容。雖然docker容器無法啟動(dòng),但是docker inspect命令依然可以使用,我們利用這個(gè)命令找到它的一些執(zhí)行信息,其中就有GraphDriver的相關(guān)信息:

"GraphDriver": {
	"Data": {
		"LowerDir": "/var/lib/docker/over..."
		"MergedDir": "/var/lib/docker/overlay2/df23df45.../merged"
		"UpperDir": "/var/lib/docker/overlay2/df23df45.../diff"
		"WorkDir": "/var/lib/docker/overlay2/df23df45.../work"
	 },
	"Name": "overlay2"

????Docker的graph driver主要用于管理和維護(hù)鏡像,包括把鏡像從倉庫下載下來,到運(yùn)行時(shí)把鏡像掛載起來可以被容器訪問等,都是graph driver做的。涉及的docker命令有Docker pull/push/export/import/load/save/build。graph driver的功能基本上是對(duì)docker的image定義的實(shí)現(xiàn),而OCI的image-spec是基于docker的image spec的,所以理論dockergraph driver做的事情,都應(yīng)該被image-spec的實(shí)現(xiàn)所覆蓋。目前docker支持的graph driver有:Overlay/Aufs/Devicemapper/Btrfs/Zfs/Vfs,這些driver各有優(yōu)劣。從上面的GraphDriver信息中可以看到當(dāng)前的docker是用Overlay2作為graph driver的。

????對(duì)于Overlay driver,其它的這里就不多涉及了,可以了解一下它的關(guān)鍵目錄:/var/lib/docker/overlay,即上面的GraphDriver信息中的MergedDir、UpperDir、WorkDir。這個(gè)目錄中存放的是鏡像的每一層layer解壓后的結(jié)果,以及基于每一個(gè)鏡像生成容器后,對(duì)鏡像合并掛載后的目錄和對(duì)應(yīng)的init目錄。這里的id就是cache-id和mount-id。我們啟動(dòng)鏡像時(shí)掛載的目錄以及鏡像中的文件都可以在這里找到。里面又分幾個(gè)子目錄,正是和GraphDriver信息中的MergedDir、UpperDir、WorkDir一一對(duì)應(yīng)。

/var/lib/docker/overlay/<id>/merged:這是所有鏡像層合并后的結(jié)果,就是容器中進(jìn)程看到的結(jié)果
/var/lib/docker/overlay/<id>/upper:這是上面的只讀層,用戶掛載的upper層目錄
/var/lib/docker/overlay/<id>/work:文件系統(tǒng)的工作基礎(chǔ)目錄。

????對(duì)于overlay2,其UpperDir就是我們掛載的程序目錄所在的位置,因此容器掛了無法啟動(dòng),此時(shí)我們可以進(jìn)入inspect命令結(jié)果中的UpperDir目錄 :/var/lib/docker/overlay2/df23df45.../diff 里找到程序進(jìn)行修改。文章來源地址http://www.zghlxwxcb.cn/news/detail-854019.html

到了這里,關(guān)于Docker打包容器并跨服務(wù)器傳輸重建加載load鏡像Unable to find image :latest問題解決 及 Docker在容器未啟動(dòng)的情況下如何修改容器中文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • netdata監(jiān)控服務(wù)器主機(jī)(包括Docker容器)

    netdata監(jiān)控服務(wù)器主機(jī)(包括Docker容器)

    創(chuàng)建掛載目錄 docker運(yùn)行 通過ip:19999端口訪問web界面 此時(shí)默認(rèn)是英文界面,netdata暫不支持中文語言 下載漢化文件,我這直接git拉取 修改dashboard.js文件 快速搜索定位/NETDATA.jQuery ,將jquery版本修改成jquery-3.6.0.min.js 進(jìn)入netdata容器 切換到web目錄下 將dashboard_info.js、、index.html、

    2024年02月11日
    瀏覽(96)
  • Linux +Docker鏡像打包導(dǎo)出,上傳至內(nèi)網(wǎng)服務(wù)器

    Linux +Docker鏡像打包導(dǎo)出,上傳至內(nèi)網(wǎng)服務(wù)器

    ? sudo:以管理員權(quán)限運(yùn)行命令,通常用于在 Linux 系統(tǒng)中運(yùn)行需要管理員權(quán)限的命令。 docker:Docker 命令行工具。 commit:提交 Docker 鏡像的命令。 -a:指定鏡像的作者,這里是作者的名字: yjw。 e007d8b7e1b7:docker的容器id。 my_projectv2:v2:要新創(chuàng)建的鏡像的名稱和版本號(hào),這里是

    2024年02月02日
    瀏覽(31)
  • 阿里云服務(wù)器docker安裝網(wǎng)心云容器魔方

    阿里云服務(wù)器docker安裝網(wǎng)心云容器魔方

    為了更好的瀏覽體驗(yàn),歡迎光顧勤奮的凱爾森同學(xué)個(gè)人博客http://www.huerpu.cc:7000 一、docker環(huán)境搭建 首先要有docker環(huán)境,如果沒有請(qǐng)參考這篇博客 二、安裝網(wǎng)心云 出現(xiàn)如下響應(yīng),證明已經(jīng)啟動(dòng)成功。 三、阿里云增加網(wǎng)絡(luò)安全組規(guī)則 在阿里云的安全組規(guī)則里,增加入方向和出方

    2024年02月11日
    瀏覽(22)
  • 將本地Python項(xiàng)目打包成docker鏡像,上傳到服務(wù)器,在docker中運(yùn)行

    將本地Python項(xiàng)目打包成docker鏡像,上傳到服務(wù)器,在docker中運(yùn)行

    windows11 Docker下載地址:https://docs.docker.com/desktop/install/windows-install/ 虛擬環(huán)境可以搭建獨(dú)立的Python運(yùn)行環(huán)境,使得單個(gè)項(xiàng)目的運(yùn)行環(huán)境與其他項(xiàng)目互不影響。 安裝完成之后,便可以直接創(chuàng)建虛擬環(huán)境了,使用命令 virtualenv env1 進(jìn)行創(chuàng)建 其中 activate.bat 文件,表示激活虛擬環(huán)境。

    2024年02月11日
    瀏覽(23)
  • 【超詳細(xì)簡(jiǎn)單】云服務(wù)器中的docker容器掛載云硬盤

    【超詳細(xì)簡(jiǎn)單】云服務(wù)器中的docker容器掛載云硬盤

    本教程一共分為三步,三步即成! 1. 確認(rèn)需要掛載到的目錄(本文需要掛到docker運(yùn)行目錄) 首先找到云服務(wù)器中的docker環(huán)境所在的位置(這里的位置指的是docker鏡像和容器所在的位置),我這里用的是CentOs,對(duì)應(yīng)的位置是 /var/lib/docker ,如圖所示有 containers 和 image 目錄出現(xiàn)

    2023年04月24日
    瀏覽(33)
  • 在docker中安裝Elasticsearch容器,并且阿里云服務(wù)器配置

    在docker中安裝Elasticsearch容器,并且阿里云服務(wù)器配置

    1、拉取Elasticsearch鏡像 2、啟動(dòng)Elasticsearch容器 ?訪問:IP訪問地址:9200 ? ?

    2024年02月13日
    瀏覽(31)
  • VsCode容器開發(fā) - VsCode連接遠(yuǎn)程服務(wù)器上的docker

    VsCode容器開發(fā) - VsCode連接遠(yuǎn)程服務(wù)器上的docker

    之前在服務(wù)器上的Docker內(nèi)開發(fā),文件編輯起來就很不爽。不如 使用VsCode直接打開遠(yuǎn)程服務(wù)器上的Docker ,這樣就能在VsCode里直接無縫編輯Docker里的文件了。 但是百度和必應(yīng)得到的中文結(jié)果都很奇葩,都是什么“給docker添加端口映射”、“給服務(wù)器開放被映射的端口”、“遠(yuǎn)程

    2024年01月23日
    瀏覽(48)
  • vscode遠(yuǎn)程訪問內(nèi)網(wǎng)服務(wù)器中docker容器小白教程

    vscode遠(yuǎn)程訪問內(nèi)網(wǎng)服務(wù)器中docker容器小白教程

    前言: 我的本意是想用vscode調(diào)試學(xué)術(shù)版gpt的翻譯功能,給它加一個(gè)自適應(yīng)的系統(tǒng)提示詞。 然而為了這個(gè)調(diào)試,我付出了太多,怎么這么多彎路要走~ 首先,Windows直接用docker+wsl2調(diào)試實(shí)在是太痛苦,之前wsl2已經(jīng)崩潰兩次,所以我不得不把程序放在Ubuntu的臺(tái)式機(jī)上。 然而我自己

    2024年04月28日
    瀏覽(22)
  • 嘗試添加服務(wù)器中正在運(yùn)行的docker容器時(shí)報(bào)錯(cuò):當(dāng)前用戶沒有運(yùn)行“docker”的權(quán)限

    嘗試添加服務(wù)器中正在運(yùn)行的docker容器時(shí)報(bào)錯(cuò):當(dāng)前用戶沒有運(yùn)行“docker”的權(quán)限

    環(huán)境 1,通過vscode ssh到服務(wù)器的 2,服務(wù)器端有一個(gè)contianer,但是無法通過vscode的Dev contianer組件將服務(wù)器中正在運(yùn)行的contianer添加過來 3,值得注意的一點(diǎn)是,我沒有把當(dāng)前用戶添加到docker用戶組中,這也是報(bào)錯(cuò)的原因 報(bào)錯(cuò)內(nèi)容 解決辦法 當(dāng)前用戶添加到docker用戶組中 然后一

    2024年01月19日
    瀏覽(30)
  • 華為云云耀云服務(wù)器L實(shí)例評(píng)測(cè) | Docker 部署 Reids容器

    華為云云耀云服務(wù)器L實(shí)例評(píng)測(cè) | Docker 部署 Reids容器

    Docker的好處在于: 在不同實(shí)例上運(yùn)行相同的容器 Docker的五大優(yōu)點(diǎn): 持續(xù)部署與測(cè)試 、 多云服務(wù)平臺(tái)支持 、 環(huán)境標(biāo)準(zhǔn)化和版本控制 、 隔離 、 安全 Docker 適用于較為小的應(yīng)用,并發(fā)量不大的情況下、微服務(wù)為超過10個(gè) ,建議適用Docker部署,這樣 也省資源、可減少開發(fā)成本

    2024年02月08日
    瀏覽(35)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包