Docker 制作镜像的方式
其它制作鏡像的方式
?
前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。
?
除了標準的使用?Dockerfile?生成鏡像的方法外,由于各種特殊需求和歷史原因,還提供了一些其它方法用以生成鏡像。
從 rootfs 壓縮包導入
格式:docker import [選項] <文件>|<URL>|- [<倉庫名>[:<標簽>]]
壓縮包可以是本地文件、遠程 Web 文件,甚至是從標準輸入中得到。壓縮包將會在鏡像?/?目錄展開,并直接作為鏡像第一層提交。
比如我們想要創建一個?OpenVZ?的 Ubuntu 14.04?模板的鏡像:
$ docker import \http://download.openvz.org/template/precreated/ubuntu-14.04-x86_64-minimal.tar.gz \openvz/ubuntu:14.04 Downloading from http://download.openvz.org/template/precreated/ubuntu-14.04-x86_64-minimal.tar.gz sha256:f477a6e18e989839d25223f301ef738b69621c4877600ae6467c4e5289822a79B/78.42 MB這條命令自動下載了?ubuntu-14.04-x86_64-minimal.tar.gz?文件,并且作為根文件系統展開導入,并保存為鏡像?openvz/ubuntu:14.04。
導入成功后,我們可以用?docker image ls?看到這個導入的鏡像:
$ docker image ls openvz/ubuntu REPOSITORY TAG IMAGE ID CREATED SIZE openvz/ubuntu 14.04 f477a6e18e98 55 seconds ago 214.9 MB如果我們查看其歷史的話,會看到描述中有導入的文件鏈接:
$ docker history openvz/ubuntu:14.04 IMAGE CREATED CREATED BY SIZE COMMENT f477a6e18e98 About a minute ago 214.9 MB Imported from http://download.openvz.org/template/precreated/ubuntu-14.04-x86_64-minimal.tar.gzdocker save?和?docker load
Docker 還提供了?docker load?和?docker save?命令,用以將鏡像保存為一個?tar?文件,然后傳輸到另一個位置上,再加載進來。這是在沒有 Docker Registry 時的做法,現在已經不推薦,鏡像遷移應該直接使用 Docker Registry,無論是直接使用 Docker Hub 還是使用內網私有 Registry 都可以。
保存鏡像
使用?docker save?命令可以將鏡像保存為歸檔文件。
比如我們希望保存這個?alpine?鏡像。
$ docker image ls alpine REPOSITORY TAG IMAGE ID CREATED SIZE alpine latest baa5d63471ea 5 weeks ago 4.803 MB保存鏡像的命令為:
$ docker save alpine | gzip > alpine-latest.tar.gz然后我們將?alpine-latest.tar.gz?文件復制到了到了另一個機器上,可以用下面這個命令加載鏡像:
$ docker load -i alpine-latest.tar.gz Loaded image: alpine:latest如果我們結合這兩個命令以及?ssh?甚至?pv?的話,利用 Linux 強大的管道,我們可以寫一個命令完成從一個機器將鏡像遷移到另一個機器,并且帶進度條的功能:
docker save <鏡像名> | bzip2 | pv | ssh <用戶名>@<主機名> 'cat | docker load'?
轉自:
https://yeasy.gitbooks.io/docker_practice/image/other.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Docker 制作镜像的方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c#中通过截获windows消息禁止改变
- 下一篇: C#中Monitor和Lock的用法区别