目錄
- Docker容器導(dǎo)出為鏡像
- Docker鏡像備份與遷移
- 記錄Docker容器轉(zhuǎn)鏡像
- 1.默認(rèn)鏡像中安裝wget
- 2.導(dǎo)出容器再導(dǎo)入鏡像
- 3.執(zhí)行新的鏡像
- 總結(jié)
Docker容器導(dǎo)出為鏡像
Docker鏡像備份與遷移
- 1. 容器保存為鏡像
- 2. 鏡像備份
- 3. 鏡像恢復(fù)與遷移
1. 容器保存為鏡像
我們可以通過以下命令將容器保存為鏡像
docker commit pinyougou_nginx mynginx
pinyougou_nginx
是容器名稱mynginx
是新的鏡像名稱
pinyougou_nginx容器已經(jīng)成功保存為mynginx鏡像,執(zhí)行
docker images
查看鏡像,是否操作成功
此鏡像的內(nèi)容就是你當(dāng)前容器的內(nèi)容,接下來你可以用此鏡像再次運(yùn)行新的容器
記錄Docker容器轉(zhuǎn)鏡像
1.默認(rèn)鏡像中安裝wget
Docker鏡像可以通過Dockerfile構(gòu)建出來,也可以通過現(xiàn)有容器生成新的鏡像。這里記錄一次基于centos鏡像的修改版本的生成過程。
$ docker images REPOSITORY ? ?TAG ? ? ? IMAGE ID ? ? ? CREATED ? ? ? ?SIZE tomcat ? ? ? ?latest ? ?b0e0b0a92cf9 ? 6 weeks ago ? ?680MB nginx ? ? ? ? latest ? ?87a94228f133 ? 8 weeks ago ? ?133MB hello-world ? latest ? ?feb5d9fea6a5 ? 2 months ago ? 13.3kB centos ? ? ? ?latest ? ?5d0da3dc9764 ? 2 months ago ? 231MB redis ? ? ? ? latest ? ?02c7f2054405 ? 3 months ago ? 105MB java ? ? ? ? ?8 ? ? ? ? d23bdf5b1b1b ? 4 years ago ? ?643MB
啟動默認(rèn)的centos鏡像
$ docker run -it --name mycentos centos /bin/bash
發(fā)現(xiàn)在默認(rèn)的鏡像中沒有wget命令
[root@b4c252cdd42a /]# wget bash: wget: command not found
使用yum install在容器內(nèi)安裝wget命令
[root@b4c252cdd42a /]# yum install wget ...... Complete!
2.導(dǎo)出容器再導(dǎo)入鏡像
如果每次新啟動的容器都要重新安裝wget很麻煩,所以導(dǎo)出容器再導(dǎo)入作為一個新的鏡像。
查看容器,看到名稱為mycentos
$ docker ps CONTAINER ID ? IMAGE ? ? COMMAND ? ? ? CREATED ? ? ? ? ?STATUS ? ? ? ? ?PORTS ? ? NAMES b4c252cdd42a ? centos ? ?"/bin/bash" ? 14 minutes ago ? Up 14 minutes ? ? ? ? ? ? mycentos
導(dǎo)出這個容器,容器導(dǎo)出后會在當(dāng)前目錄中看到這個文件
$ docker export mycentos > mycentos_export.tar
將這個文件導(dǎo)入docker環(huán)境,會看到新的鏡像。
$ docker import - mycentos-image < mycentos_export.tar? sha256:c7d000aaf05fa8d5b26a94dd3fbe09bf62a0007cbed73eeedefe6119434c375d $ docker images REPOSITORY ? ? ? TAG ? ? ? IMAGE ID ? ? ? CREATED ? ? ? ? SIZE mycentos-image ? latest ? ?c7d000aaf05f ? 8 seconds ago ? 259MB tomcat ? ? ? ? ? latest ? ?b0e0b0a92cf9 ? 6 weeks ago ? ? 680MB nginx ? ? ? ? ? ?latest ? ?87a94228f133 ? 8 weeks ago ? ? 133MB hello-world ? ? ?latest ? ?feb5d9fea6a5 ? 2 months ago ? ?13.3kB centos ? ? ? ? ? latest ? ?5d0da3dc9764 ? 2 months ago ? ?231MB redis ? ? ? ? ? ?latest ? ?02c7f2054405 ? 3 months ago ? ?105MB java ? ? ? ? ? ? 8 ? ? ? ? d23bdf5b1b1b ? 4 years ago ? ? 643MB
3.執(zhí)行新的鏡像
執(zhí)行新的鏡像,可以看到新的鏡像已經(jīng)包含了wget命令。
(base) wjx-mac-pro:~ wangjianxuan1$ docker run -it --name mycentos-cus mycentos-image /bin/bash [root@3edd237aa0e5 /]# wget wget: missing URL Usage: wget [OPTION]... [URL]... Try `wget --help' for more options.
為了方便,可以將這個鏡像提交到docker庫上,下次可以直接使用這個鏡像就可以了。
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持。