有兩種方法,一種是通過容器,一種是通過鏡像
方法一:通過容器導(dǎo)出鏡像
1 首先使用 docker ps -a 查看本機上的所有容器
docker ps -a
2 導(dǎo)出鏡像
使用 docker export 命令根據(jù)容器 id 將鏡像導(dǎo)成一個文件
docker export 容器id > image.tar
上面命令執(zhí)行之后,我們便可以通過 ls 命令在當(dāng)前目錄下發(fā)現(xiàn) image.tar
3 導(dǎo)入鏡像
使用 docker import 命令將這個鏡像導(dǎo)進(jìn)來
docker import 容器名 < image.tar
通過 docker images 命令查看鏡像是否導(dǎo)入
docker images
方法二:通過鏡像
1 通過 docker image 查看本機上的所有鏡像
docker imags
2 找到要上傳的鏡像的 id, 使用 docker save 命令將鏡像保存為一個文件
docker save 鏡像id > image.tar
docker save 可以將多個 image 打包成一個文件
docker save -o image.tar 鏡像1 鏡像2
3 通過 docker load 載入鏡像
docker load < image.tar
這兩種方案的差別
1,文件大小不同
export 導(dǎo)出的鏡像文件體積小于 save 保存的鏡像
2,是否可以對鏡像重命名
docker import 可以為鏡像指定新名稱
docker load 不能對載入的鏡像重命名
3,是否可以同時將多個鏡像打包到一個文件中
docker export 不支持
docker save 支持
4,是否包含鏡像歷史
export 導(dǎo)出(import 導(dǎo)入)是根據(jù)容器拿到的鏡像,再導(dǎo)入時會丟失鏡像所有的歷史記錄和元數(shù)據(jù)信息(即僅保存容器當(dāng)時的快照狀態(tài)),所以無法進(jìn)行回滾操作。
而 save 保存(load 加載)的鏡像,沒有丟失鏡像的歷史,可以回滾到之前的層(layer)。
5,應(yīng)用場景不同
docker export 的應(yīng)用場景:主要用來制作基礎(chǔ)鏡像,比如我們從一個 ubuntu 鏡像啟動一個容器,然后安裝一些軟件和進(jìn)行一些設(shè)置后,使用 docker export 保存為一個基礎(chǔ)鏡像。然后,把這個鏡像分發(fā)給其他人使用,比如作為基礎(chǔ)的開發(fā)環(huán)境。
docker save 的應(yīng)用場景:如果我們的應(yīng)用是使用 docker-compose.yml 編排的多個鏡像組合,但我們要部署的客戶服務(wù)器并不能連外網(wǎng)。這時就可以使用 docker save 將用到的鏡像打個包,然后拷貝到客戶服務(wù)器上使用 docker load 載入。
鏡像重命名
docker tag 存在的鏡像名:tag caidingnu/鏡像名稱:tag
鏡像推送到dockerhub
先登錄docker,輸入賬號密碼文章來源:http://www.zghlxwxcb.cn/news/detail-436621.html
docker login -u 用戶名 -p 密碼
推送鏡像到docker hub文章來源地址http://www.zghlxwxcb.cn/news/detail-436621.html
docker push <hub-user>/<repo-name>:<tag>
jar包打鏡像
docker build -t 鏡像名:tag . #點不能少 dockerfile的路徑
容器打鏡像
sudo docker commit -a "" -m "new image" 容器id xxl:v0
Option | 功能 |
---|---|
-a | 指定新鏡像作者 |
-c | 使用 Dockerfile 指令來創(chuàng)建鏡像 |
-m | 提交生成鏡像的說明信息 |
-p | 在 commit 時,將容器暫停 |
到了這里,關(guān)于docker導(dǎo)出鏡像、容器打鏡像的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!