docker 復(fù)制容器的實(shí)現(xiàn)步驟
在 Docker 中復(fù)制容器本身并不是直接支持的操作,但你可以通過以下方法來實(shí)現(xiàn)類似的效果:
1.將已有的容器提交為鏡像
2.以該鏡像創(chuàng)建容器
3.開啟容器,進(jìn)入容器內(nèi)部
一. 使用 Docker 鏡像復(fù)制容器
首先,你可以將容器的狀態(tài)保存為鏡像,然后從該鏡像創(chuàng)建一個(gè)新的容器。步驟如下:
提交容器的更改為鏡像
docker commit <容器ID或名稱> <鏡像名>:<標(biāo)簽> C:\Users\fuyul>docker commit phttp peach:2024 sha256:1d07a8690c4f65a0cc5ef836b14d73facd24f5911b06f3e977fb50010cedce80
成功執(zhí)行 docker commit
命令時(shí),終端會輸出新的鏡像 ID。例如:
sha256:abc123def4567890...
查找鏡像
刪除鏡像 peach 和 peach1(可不執(zhí)行)
結(jié)果:
從鏡像創(chuàng)建新容器:
查看在運(yùn)行的容器
從鏡像創(chuàng)建新容器:
docker run -d <鏡像名>:<標(biāo)簽>
例如:
docker run -d -v d:\Data:/peachs --name peachs peach:2024 /bin/bash -c "while true; do sleep 1; done"
解釋
docker run
: 這是用于運(yùn)行一個(gè)新的容器的 Docker 命令。-d
: 這個(gè)選項(xiàng)表示以“分離”模式運(yùn)行容器,也就是說容器將在后臺運(yùn)行,而不是綁定到當(dāng)前終端窗口。-v d:\Data:/peachs
: 這個(gè)選項(xiàng)將主機(jī)上的d:\Data
目錄掛載到容器內(nèi)的/peachs
目錄。這使得容器可以訪問和操作主機(jī)上的d:\Data
目錄中的文件。--name peachs
: 這個(gè)選項(xiàng)為容器指定了一個(gè)名稱peachs
,這樣你可以用這個(gè)名稱來引用和管理容器,而不需要使用容器的自動(dòng)生成 ID。peach:2024
: 這是要運(yùn)行的 Docker 鏡像的名稱和標(biāo)簽。peach
是鏡像的名稱,2024
是標(biāo)簽或版本號。/bin/bash -c "while true; do sleep 1; done"
: 這是容器啟動(dòng)時(shí)要執(zhí)行的命令。/bin/bash
啟動(dòng)一個(gè) Bash shell,-c
選項(xiàng)允許你傳遞一個(gè)命令字符串。"while true; do sleep 1; done"
是一個(gè)無限循環(huán)的 Bash 腳本,這個(gè)腳本每秒鐘暫停一次,實(shí)際上它使容器保持運(yùn)行狀態(tài)而不執(zhí)行其他任務(wù)。這個(gè)命令的作用是啟動(dòng)一個(gè)基于
peach:2024
鏡像的 Docker 容器,掛載主機(jī)上的d:\Data
目錄到容器內(nèi)的/peachs
目錄,以分離模式運(yùn)行,并在容器內(nèi)執(zhí)行一個(gè)無限循環(huán)的命令來保持容器處于運(yùn)行狀態(tài)。容器被命名為peachs
。
開啟容器
docker exec -it 容器名 /bin/bash docker exec -it peachs /bin/bash
二. 使用 Docker 導(dǎo)出和導(dǎo)入容器
另一種方法是將容器的文件系統(tǒng)導(dǎo)出到 tar 文件中,然后在另一臺機(jī)器上導(dǎo)入這個(gè) tar 文件來創(chuàng)建新容器:
導(dǎo)出容器:
docker export <容器ID或名稱> -o <文件名>.tar
例如:
docker export my_container -o my_container_backup.tar
導(dǎo)入容器:
docker import <文件名>.tar <新鏡像名>:<標(biāo)簽>
例如:
docker import my_container_backup.tar my_new_image:latest
使用導(dǎo)入的鏡像創(chuàng)建新容器:
docker run -d <新鏡像名>:<標(biāo)簽>
例如:
docker run -d my_new_image:latest
三. 克隆容器的配置和數(shù)據(jù)
如果你需要復(fù)制容器的配置和數(shù)據(jù),可以使用 Docker Compose 文件來定義和創(chuàng)建容器的配置,然后在另一臺機(jī)器上使用相同的 Compose 文件來創(chuàng)建容器。這種方法適用于容器的配置和部署一致的場景。
注意事項(xiàng)
- 容器狀態(tài):
docker export
和docker commit
不會保存容器的運(yùn)行狀態(tài)(例如,當(dāng)前進(jìn)程狀態(tài)),它們主要用于保存文件系統(tǒng)的狀態(tài)。 - 數(shù)據(jù)持久性:確保數(shù)據(jù)存儲在持久卷中,這樣在復(fù)制容器時(shí),數(shù)據(jù)不會丟失。
根據(jù)你的具體需求和場景,選擇合適的方法來復(fù)制容器。
到此這篇關(guān)于docker 復(fù)制容器的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)docker 復(fù)制容器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker?cp命令詳解之如何在Docker容器和主機(jī)之間復(fù)制文件/文件夾
要從Docker容器中復(fù)制文件,可以使用docker?cp命令,下面這篇文章主要給大家介紹了關(guān)于Docker?cp命令詳解之如何在Docker容器和主機(jī)之間復(fù)制文件/文件夾的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07Docker沒有啟動(dòng)環(huán)境變量的問題解決
在使用Docker容器時(shí),有時(shí)候我們會遇到一個(gè)問題,就是在容器中沒有啟動(dòng)環(huán)境變量,本文主要介紹了Docker沒有啟動(dòng)環(huán)境變量的問題解決,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02Ubuntu Docker 的安裝部署及簡單應(yīng)用
這篇文章主要介紹了Ubuntu Docker 的安裝部署的相關(guān)資料,這里說明介紹了詳細(xì)的步驟,需要的朋友可以參考下2016-10-10在Docker容器中部署Django的時(shí)區(qū)問題
本文主要介紹了在Docker容器中部署Django的時(shí)區(qū)問題,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10