鏡像是動態的容器的靜態表示,包括容器所要運行的應用代碼以及運行時的配置。Docker鏡像包括一個或者多個只讀層(read-only layers),所以,鏡像一旦被建立就不再能被修改了,一個運行着的Docker容器時一個鏡像的實例(instantiation)。從同一個鏡像中運行的容器包含有相同的應用代碼和運行時依賴。可是不像鏡像是靜態的,每一個運行着的容器都有一個可寫層(writable layer,也成爲容器層 container layer),它位於底下的若干只讀層之上。運行時的全部變化,包括對數據和文件的寫和更新,都會保存在這個層中,所以,從同一個鏡像運行的多個容器包含了不一樣的容器層。php
關於鏡像是什麼總結:html
1.一個分層存儲的文件mysql
2.一個軟件的環境linux
3.一個鏡像能夠建立N個容器nginx
4.又稱一種標準化的交付web
5.一個不包含Linux內核又精簡的Liunx操做系統sql
助理解:鏡像不是單一的文件,而是多層構成,咱們能夠經過docker history <ID/NAME> 查看鏡像中各層內容及其大小,每層對應着一個Dockerfile中的一條指令,另外docker鏡像存儲在/var/lib/docker/<storage-d'river>中。docker
鏡像從哪裏來的呢?apache
Docker hub是由Docker公司負責維護的公共註冊中心,包含大量的容器鏡像,Docker工具默認從這個公共鏡像庫下載鏡像,地址爲:https://hub.docker.com/search/?q=&type=imagejson
鏡像加速器的配置:https://www.daocloud.io/mirror
配置方法:
curl -sSL https://get.daocloud.io/daotools/set_mirror.sg | sh -s http://f1361db2.m.daocloud.io
Docker有三種方式建立鏡像:
舉例說明:一臺主機上安裝的時Centos操做系統,如今上面跑了一個Ubuntu容器。此時,Host OS時Centos,Guest OS是Ubuntu。Guest OS也被稱爲容器的Base Image。
說明:
容器的base image 並非真正的base OS,base image 會遠遠的比 base OS更輕量。它只安裝發行版特殊的部分
base image的用途或者做用是什麼呢?
docker容器文件系統與host OS是隔離的,容器鏡像中的應用軟件沒法看到主機文件系統,除非將主機文件系統掛載爲容器的卷。所以,能夠想象一下,你容器中的應用依賴於各類操做系統庫,所以咱們不得不將這些庫打包到鏡像之中,另外,base image會讓咱們使用到各個發行版的包管理系統,好比yum 和 apt-get。並且,各個linux發行版的base image也不是普通的發行版,而是一個簡化了的版本。並且,base image並不帶有linux內核,由於主機會使用主機的內核。
所以,須要注重理解image 和 OS這兩個概念,之因此成爲base OS,是由於base image中並不包括完整的OS,而這一點,是容器與虛擬機之間的本質區別之一。容器是共享主機上的linux內核。
從上面內容能夠看出,容器把linux鏡像從內核空間和用戶空間進行了分開管理,對host OS而言,它更側重與內核,加上少許的用戶空間內容;對Guest OS 而言,它只側重於用戶空間,只包括庫文件,編譯器,配置文件,以及用戶代碼。
1.獲取鏡像
用法:docker pull NAME[:TAG],若是沒有顯示TAG,則默認是latest標籤,也就是最新版本的鏡像。
root@S1:~# docker pull ubuntu Using default tag: latest latest: Pulling from library/ubuntu 898c46f3b1a1: Pull complete 63366dfa0a50: Pull complete 041d4cd74a92: Pull complete 6e1bee0f8701: Pull complete Digest: sha256:017eef0b616011647b269b5c65826e2e2ebddbe5d1f8c1e56b3599fb14fabec8 Status: Downloaded newer image for ubuntu:latest
默認下載的是最新的ubuntu鏡像,默認下載的鏡像地址registry.hub.docker.com 至關於以下命令: docker pull registry.hub.docker.com/ubuntu:latest root@S1:~# docker run -d -t -i ubuntu /bin/bash 082d88976a54d5b05ae39fd5eed6ccff28a6a8881bde553cd48efd75ac3bd754
2.查看鏡像信息:
使用docker images 命令能夠列出本地主機已有的鏡像。
root@S1:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 94e814e2efa8 2 weeks ago 88.9MB hello-world latest fce289e99eb9 2 months ago 1.84kB REPOSITORY:來自哪個倉庫,好比ubuntu倉庫 TAG:鏡像的標籤信息,最新的 鏡像的id號:這個是惟一的 鏡像建立時間 鏡像大小 其中鏡像的id信息很是重要,由於他是惟一標識了鏡像 tag信息用於標記來自同一個倉庫的不一樣鏡像,後續工做咱們可使用tag爲本地鏡像添加新的標籤,咱們也能夠將它用於ci/cd相結合起來使用(後續文章會介紹到,盡情關注) eg:添加一個新的標籤: root@S1:~# docker tag ubuntu:latest ubuntu:16.04 root@S1:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 16.04 94e814e2efa8 2 weeks ago 88.9MB ubuntu latest 94e814e2efa8 2 weeks ago 88.9MB hello-world latest fce289e99eb9 2 months ago 1.84kB 這裏細心的同窗會發現,不一樣的標籤的鏡像的ID是徹底一致的,說明它們實際上指向了同一個鏡像文件,只是名字不一樣而已,能夠理解爲linux的軟鏈接或者window的快捷方式。 查看鏡像的詳細信息 root@S1:~# docker inspect 94e814e2efa8 [ { "Id": "sha256:94e814e2efa8845d95b2112d54497fbad173e45121ce9255b93401392f538499", "RepoTags": [ "ubuntu:16.04", "ubuntu:latest" ], "RepoDigests": [ "ubuntu@sha256:017eef0b616011647b269b5c65826e2e2ebddbe5d1f8c1e56b3599fb14fabec8" ], "Parent": "", "Comment": "", "Created": "2019-03-12T00:20:17.419392342Z", "Container": "94772adb8869651410d18062838667884a555cf1878d567734e99dc695d6f5bf", "ContainerConfig": { "Hostname": "94772adb8869", "Domainname": "", "User": "", "AttachStdin": false, "AttachStdout": false, "AttachStderr": false, "Tty": false, "OpenStdin": false, "StdinOnce": false, "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ], "Cmd": [ "/bin/sh", "-c", "#(nop) ", "CMD [\"/bin/bash\"]" ], "ArgsEscaped": true, "Image": "sha256:881686baf75637792ebd93d88243b6f5bb89833ce325f9e32e2e70208f0efb64", "Volumes": null, "WorkingDir": "", "Entrypoint": null, "OnBuild": null, "Labels": {} }, "DockerVersion": "18.06.1-ce", "Author": "", "Config": { "Hostname": "", "Domainname": "", "User": "", "AttachStdin": false, "AttachStdout": false, "AttachStderr": false, "Tty": false, "OpenStdin": false, "StdinOnce": false, "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ], "Cmd": [ "/bin/bash" ], "ArgsEscaped": true, "Image": "sha256:881686baf75637792ebd93d88243b6f5bb89833ce325f9e32e2e70208f0efb64", "Volumes": null, "WorkingDir": "", "Entrypoint": null, "OnBuild": null, "Labels": null }, "Architecture": "amd64", "Os": "linux", "Size": 88908191, "VirtualSize": 88908191, "GraphDriver": { "Data": { "LowerDir": "/var/lib/docker/overlay2/e9af142ff18154b104fcae496ca9cdba91a7de36d929738a61fb044df3fd21cb/diff:/var/lib/docker/overlay2/4ebe2a5f541f89e24fc6a4c6f22817e0b5e39358ee9ba507f792e606386c2727/diff:/var/lib/docker/overlay2/66fa62d0da114b8b02bd376cc4507b196dccccf0c1f9635d9db5d5706e95cc39/diff", "MergedDir": "/var/lib/docker/overlay2/ef8439354f7b197a7bbfa74fa6b0dfd0dabf4bd8009b7528ce5b1d0992b290a5/merged", "UpperDir": "/var/lib/docker/overlay2/ef8439354f7b197a7bbfa74fa6b0dfd0dabf4bd8009b7528ce5b1d0992b290a5/diff", "WorkDir": "/var/lib/docker/overlay2/ef8439354f7b197a7bbfa74fa6b0dfd0dabf4bd8009b7528ce5b1d0992b290a5/work" }, "Name": "overlay2" }, "RootFS": { "Type": "layers", "Layers": [ "sha256:762d8e1a60542b83df67c13ec0d75517e5104dee84d8aa7fe5401113f89854d9", "sha256:e45cfbc98a505924878945fdb23138b8be5d2fbe8836c6a5ab1ac31afd28aa69", "sha256:d60e01b37e74f12aa90456c74e161f3a3e7c690b056c2974407c9e1f4c51d25b", "sha256:b57c79f4a9f3f7e87b38c17ab61a55428d3391e417acaa5f2f761c0e7e3af409" ] }, "Metadata": { "LastTagTime": "2019-03-26T19:07:55.36713665+08:00" } } ] docker inspect命令返回的是一個JSON格式的消息,若是咱們只要其中一項內容時,可使用-f 參數來指定,如: root@S1:~# docker inspect -f {{".Metadata"}} 94e814e2efa8 {2019-03-26 19:07:55.36713665 +0800 CST}
3.搜尋鏡像:
使用docker search命令能夠搜索遠端倉庫中共享的鏡像,默認搜索Docker Hub官方倉庫中的鏡像,用法:docker search TERM
root@S1:~# docker search mysql NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a widely used, open-source relation… 7955 [OK] mariadb MariaDB is a community-developed fork of MyS… 2660 [OK] mysql/mysql-server Optimized MySQL Server Docker images. Create… 598 [OK] zabbix/zabbix-server-mysql Zabbix Server with MySQL database support 176 [OK] hypriot/rpi-mysql RPi-compatible Docker Image with Mysql 110 zabbix/zabbix-web-nginx-mysql Zabbix frontend based on Nginx web-server wi… 92 [OK] centurylink/mysql Image containing mysql. Optimized to be link… 60 [OK] 1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5 ubuntu-16-nginx-php-phpmyadmin-mysql-5 50 [OK] centos/mysql-57-centos7 MySQL 5.7 SQL database server 49 mysql/mysql-cluster Experimental MySQL Cluster Docker images. Cr… 41 tutum/mysql Base docker image to run a MySQL database se… 31 schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic backup… 25 [OK] bitnami/mysql Bitnami MySQL Docker Image 25 [OK] zabbix/zabbix-web-apache-mysql Zabbix frontend based on Apache web-server w… 24 [OK] zabbix/zabbix-proxy-mysql Zabbix proxy with MySQL database support 20 [OK] linuxserver/mysql A Mysql container, brought to you by LinuxSe… 20 centos/mysql-56-centos7 MySQL 5.6 SQL database server 13 circleci/mysql MySQL is a widely used, open-source relation… 12 mysql/mysql-router MySQL Router provides transparent routing be… 8 openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 image… 6 dsteinkopf/backup-all-mysql backup all DBs in a mysql server 6 [OK] jelastic/mysql An image of the MySQL database server mainta… 1 cloudposse/mysql Improved `mysql` service with support for `m… 0 [OK] ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL 0 [OK] widdpim/mysql-client Dockerized MySQL Client (5.7) including Curl… 0 [OK] 返回了不少包含關鍵字的鏡像,其中包括鏡像名字,描述,星級(表示該鏡像的受歡迎程度),是否官方建立,是否自動建立等 默認的輸出結果是按照星級評價進行排序的,官方的鏡像說明是官方項目組建立和維護的,automated資源則是容許用戶驗證鏡像的來源和內容。
我的建議:若是本身的線上服務使用的化,本身寫dockerfile構建鏡像比較好
4.刪除鏡像
docker rmi 命令能夠刪除鏡像,命令格式docker rmi ID/REPOSITORY:TAG(能夠爲標籤或者ID)
使用鏡像標籤刪除鏡像: 若是一個鏡像有兩個或兩個以上的標籤,刪除的只是標籤。
root@S1:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 16.04 94e814e2efa8 2 weeks ago 88.9MB ubuntu latest 94e814e2efa8 2 weeks ago 88.9MB hello-world latest fce289e99eb9 2 months ago 1.84kB root@S1:~# docker rmi ubuntu:16.04 Untagged: ubuntu:16.04 root@S1:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 94e814e2efa8 2 weeks ago 88.9MB hello-world latest fce289e99eb9 2 months ago 1.84kB 如今只剩下一個標籤的時候,再去用標籤刪除的話,會將鏡像永久的刪除,以下: root@S1:~# docker rmi ubuntu:latest Untagged: ubuntu:latest Untagged: ubuntu@sha256:017eef0b616011647b269b5c65826e2e2ebddbe5d1f8c1e56b3599fb14fabec8 Deleted: sha256:94e814e2efa8845d95b2112d54497fbad173e45121ce9255b93401392f538499 Deleted: sha256:e783d8ee44ce099d51cbe699f699a04e43c9af445d85d8576f0172ba92e4e16c Deleted: sha256:cc7fae10c2d465c5e4b95167987eaa53ae01a13df6894493efc5b28b95c1bba2 Deleted: sha256:99fc3504db138523ca958c0c1887dd5e8b59f8104fbd6fd4eed485c3e25d2446 Deleted: sha256:762d8e1a60542b83df67c13ec0d75517e5104dee84d8aa7fe5401113f89854d9
使用鏡像ID刪除鏡像:
當使用docker rmi 命令後面跟上鏡像的ID(也能夠是ID能區分的部分前綴)時,會嘗試先刪除全部指向該鏡像的標籤,而後刪除該鏡像文件自己。若是有該鏡像的容器存在時,鏡像文件默認時沒法被刪除的,(能夠用-f強制刪除 可是不推薦)例如:
root@S1:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 59fa4f00d111 ubuntu:16.04 "/bin/bash" 5 minutes ago Up 4 minutes pensive_napier root@S1:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 16.04 9361ce633ff1 2 weeks ago 118MB root@S1:~# docker stop 59fa4f00d111 d59fa4f00d111 root@S1:~# docker rm 59fa4f00d111 59fa4f00d111 root@S1:~# docker rmi 9361ce633ff1 Untagged: ubuntu:16.04 Untagged: ubuntu@sha256:58d0da8bc2f434983c6ca4713b08be00ff5586eb5cdff47bcde4b2e88fd40f88 Deleted: sha256:9361ce633ff193349d54bed380a5afe86043b09fd6ea8da7549dbbedfc2a7077 Deleted: sha256:59a6856f439d187f3ce3381d0a6b0816db99cc3d8468bcf8c9d1c39d2071dcff Deleted: sha256:82997a16a0d57ac7d8b416c0d83f5841193b6a56a7844b486ab6324730867fe0 Deleted: sha256:5c6983f277f26021b5e38501fdf06fa29f7158a93641f3f10aedbdc9869121d0 Deleted: sha256:aa54c2bc12290df2851a94b8834cae75e4627219d2b423d4d3db8b0a497e79a2 root@S1:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES root@S1:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE
刪除鏡像的規則,應該先刪除容器,在刪除鏡像,以前的版本刪除還在容器的鏡像還會生成一個臨時鏡像,ubuntu16.04系統,docker18.09的是能夠強制刪除掉的
5.建立鏡像
基於已有鏡像的容器建立:該方法主要是使用docker commit 命令,命令格式:docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG] ],主要選項包括:
-a --author=‘ ’ 做者信息
-c --change 對建立的鏡像應用Dockerfile指令
-m --message=‘ ’ 提交信息
-p --pause=true 提交鏡像的時候 暫停容器的運行
root@iZhp38fvkcax587xnn2552Z:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 14.04 390582d83ead 2 weeks ago 188MB 啓動一個鏡像 並做出修改 root@iZhp38fvkcax587xnn2552Z:~# docker run -it ubuntu:14.04 /bin/bash root@b0ca2a732416:/# mkdir 1 2 3 root@b0ca2a732416:/# touch 4 root@b0ca2a732416:/# exit exit 這裏須要記住這個容器的id號 root@iZhp38fvkcax587xnn2552Z:~# docker commit -m "add files" -a "Docker newimages" b0ca2a732416 file sha256:03aa8fcfd2f18c4ce1c4ef35be02fced08313ba62b11d03fddcc7875c80fab34 root@iZhp38fvkcax587xnn2552Z:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE file latest 03aa8fcfd2f1 6 seconds ago 188MB ubuntu 14.04 390582d83ead 2 weeks ago 188MB
基於本地模板導入:
也能夠充一個操做系統模板文件導入一個鏡像。在這裏,推薦使用OpenVZ提供的模板來建立。OPENVZ模板的下載地址:https://download.openvz.org/template/precreated/
root@iZhp38fvkcax587xnn2552Z:~# wget https://download.openvz.org/template/precreated/ubuntu-14.04-x86-minimal.tar.gz --2019-03-28 19:21:24-- https://download.openvz.org/template/precreated/ubuntu-14.04-x86-minimal.tar.gz Resolving download.openvz.org (download.openvz.org)... 185.231.241.69 Connecting to download.openvz.org (download.openvz.org)|185.231.241.69|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 76242510 (73M) [application/x-gzip] Saving to: ‘ubuntu-14.04-x86-minimal.tar.gz’ ubuntu-14.04-x86-minimal.tar.gz 100%[==============================================================================>] 72.71M 58.7KB/s in 21m 52s 2019-03-28 19:43:19 (56.8 KB/s) - ‘ubuntu-14.04-x86-minimal.tar.gz’ saved [76242510/76242510] root@iZhp38fvkcax587xnn2552Z:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE file latest 03aa8fcfd2f1 About an hour ago 188MB nginx latest 2bcb04bdb83f 37 hours ago 109MB root@iZhp38fvkcax587xnn2552Z:~# cat ubuntu-14.04-x86-minimal.tar.gz | docker import - ubuntu:14.04 sha256:5863575f1996d4738399f0b3b4c03fe5ab69098b370eb587fc2163367ffcff72 root@iZhp38fvkcax587xnn2552Z:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 14.04 5863575f1996 About a minute ago 205MB file latest 03aa8fcfd2f1 About an hour ago 188MB nginx latest 2bcb04bdb83f 37 hours ago 109MB
基於Dockerfile生成鏡像:
https://www.cnblogs.com/ylqh/p/10617105.html
6.導出和載入鏡像
導出鏡像:使用docker save命令,導出本地的ubuntu:14.04的鏡像文件爲:ubuntu_14.04.tar
root@iZhp38fvkcax587xnn2552Z:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE file latest 03aa8fcfd2f1 13 minutes ago 188MB ubuntu 14.04 390582d83ead 2 weeks ago 188MB root@iZhp38fvkcax587xnn2552Z:~# docker save -o ubuntu_14.04.tar ubuntu:14.04
導入鏡像:使用docker load從本地文件導入到本地的鏡像庫中,例如:
root@iZhp38fvkcax587xnn2552Z:~# ls ubuntu_14.04.tar root@iZhp38fvkcax587xnn2552Z:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE file latest 03aa8fcfd2f1 17 minutes ago 188MB root@iZhp38fvkcax587xnn2552Z:~# docker load --input ubuntu_14.04.tar Loaded image: ubuntu:14.04 root@iZhp38fvkcax587xnn2552Z:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE file latest 03aa8fcfd2f1 18 minutes ago 188MB ubuntu 14.04 390582d83ead 2 weeks ago 188MB root@iZhp38fvkcax587xnn2552Z:~# docker rmi ubuntu:14.04 Untagged: ubuntu:14.04 root@iZhp38fvkcax587xnn2552Z:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE file latest 03aa8fcfd2f1 18 minutes ago 188MB root@iZhp38fvkcax587xnn2552Z:~# docker load < ubuntu_14.04.tar Loaded image: ubuntu:14.04 root@iZhp38fvkcax587xnn2552Z:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE file latest 03aa8fcfd2f1 18 minutes ago 188MB ubuntu 14.04 390582d83ead 2 weeks ago 188MB
7.上傳鏡像
使用docker push上傳鏡像到倉庫,默認上傳到Dockerhub官方倉庫(須要認證),命令格式: docker push NAME[:TAG]。
用戶在DockerHub網站註冊後,能夠上傳自制的鏡像,上傳方式以下:
上傳鏡像須要登錄到docker hub上 root@S1:~# docker login Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. Username: zhangzhanling Password: WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded root@S1:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 14.04 390582d83ead 2 weeks ago 188MB root@S1:~# docker tag ubuntu:14.04 zhangzhanling/ubuntu:14.04 root@S1:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 14.04 390582d83ead 2 weeks ago 188MB zhangzhanling/ubuntu 14.04 390582d83ead 2 weeks ago 188MB 上傳鏡像 root@S1:~# docker push zhangzhanling/ubuntu The push refers to repository [docker.io/zhangzhanling/ubuntu] 5f96fa66dc12: Mounted from library/ubuntu dda5ec330bd9: Mounted from library/ubuntu 11a0c2f551fd: Mounted from library/ubuntu eef560b4ec4f: Mounted from library/ubuntu 14.04: digest: sha256:76f6920c51a2e9da1fccca4b81a84af0ff287449282d6a04c33adeaeeb4df60d size: 1152
容器是在鏡像的最上面加了一個讀寫層,在運行容器裏的文件改動時,會先從鏡像裏要寫的文件複製到容器本身的文件系統中(讀寫層)。
若是容器刪除了,最上面的讀寫層也就刪除了,改動就丟失了,因此不管多少個容器共享一個鏡像,所作的寫操做都是從鏡像的文件系統中複製過來操做的,並不會修改鏡像的源文件,這種方式提升了磁盤利用率。
若是想持久化這些改動,能夠經過docker commit將容器保存爲一個新鏡像
本地鏡像須要能夠從遠端鏡像服務器上pull或者push鏡像文件,鏡像能夠實例化成容器,容器也能夠commit成鏡像
docker image 【options】
ls :列出鏡像 docker image ls 或者 docker images
build : 經過dockerfile構建鏡像
history :查看鏡像歷史
inspect:顯示一個或者多個鏡像詳細信息
pull:從鏡像倉庫拉去鏡像
push:推送一個鏡像到鏡像倉庫
rm:移除一個或者多個鏡像
prune:移除未使用的鏡像,沒有被標記或被任何容器引用的
tag:建立一個引用源鏡像標記的目標鏡像
export:導出容器文件系統到tar歸檔文件
import:導入容器文件系統tar歸檔文件建立鏡像
save:保存一個或多個鏡像到一個tar歸檔文件
load:加載鏡像來自tar歸檔或標準輸入