目錄
- Docker容器導出為鏡像
- Docker鏡像備份與遷移
- 記錄Docker容器轉鏡像
- 1.默認鏡像中安裝wget
- 2.導出容器再導入鏡像
- 3.執行新的鏡像
- 總結
Docker容器導出為鏡像
Docker鏡像備份與遷移
- 1. 容器保存為鏡像
- 2. 鏡像備份
- 3. 鏡像恢復與遷移
1. 容器保存為鏡像
我們可以通過以下命令將容器保存為鏡像
docker commit pinyougou_nginx mynginx
pinyougou_nginx
是容器名稱mynginx
是新的鏡像名稱
pinyougou_nginx容器已經成功保存為mynginx鏡像,執行
docker images
查看鏡像,是否操作成功
此鏡像的內容就是你當前容器的內容,接下來你可以用此鏡像再次運行新的容器
記錄Docker容器轉鏡像
1.默認鏡像中安裝wget
Docker鏡像可以通過Dockerfile構建出來,也可以通過現有容器生成新的鏡像。這里記錄一次基于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
啟動默認的centos鏡像
$ docker run -it --name mycentos centos /bin/bash
發現在默認的鏡像中沒有wget命令
[root@b4c252cdd42a /]# wget bash: wget: command not found
使用yum install在容器內安裝wget命令
[root@b4c252cdd42a /]# yum install wget ...... Complete!
2.導出容器再導入鏡像
如果每次新啟動的容器都要重新安裝wget很麻煩,所以導出容器再導入作為一個新的鏡像。
查看容器,看到名稱為mycentos
$ docker ps CONTAINER ID ? IMAGE ? ? COMMAND ? ? ? CREATED ? ? ? ? ?STATUS ? ? ? ? ?PORTS ? ? NAMES b4c252cdd42a ? centos ? ?"/bin/bash" ? 14 minutes ago ? Up 14 minutes ? ? ? ? ? ? mycentos
導出這個容器,容器導出后會在當前目錄中看到這個文件
$ docker export mycentos > mycentos_export.tar
將這個文件導入docker環境,會看到新的鏡像。
$ 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.執行新的鏡像
執行新的鏡像,可以看到新的鏡像已經包含了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庫上,下次可以直接使用這個鏡像就可以了。
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持。