Docker images export and import operations
- 2021-10-16 05:36:05
- OfStack
What should I do when I have configured the basic images before and need them elsewhere?
Answer: Importing and exporting mirrors.
1. Save the mirror image
[root@wxtest1607 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat8 3.0 90457edaf6ff 6 hours ago 1.036 GB
[root@wxtest1607 lixr]# docker save 9045 > tomcat8-apr.tar
[root@wxtest1607 lixr]# ls -lh
Total dosage 1.2G
-rw-r--r-- 1 root root 1005M 8 Month 24 17:42 tomcat8-apr.tar
2. Importing mirrors
At present, there is a shortage of CentOS7 server. The practice is to delete image first, and then import it.
[root@wxtest1607 lixr]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat8 3.0 90457edaf6ff 7 hours ago 1.036 GB
[root@wxtest1607 lixr]# docker rmi 9045
Untagged: tomcat8:3.0
Deleted: sha256:90457edaf6ff4ce328dd8a3131789c66e6bd89e1ce40096b89dd49d6e9d62bc8
Deleted: sha256:00df1d61992f2d87e7149dffa7afa5907df3296f5775c53e3ee731972e253600
[root@wxtest1607 lixr]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
[root@wxtest1607 lixr]# docker load < tomcat8-apr.tar
60685807648a: Loading layer [==================================================>] 442.7 MB/442.7 MB
[root@wxtest1607 lixr]# yer [> ] 527.7 kB/442.7 MB
[root@wxtest1607 lixr]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 90457edaf6ff 7 hours ago 1.036 GB
[root@wxtest1607 lixr]# docker tag 9045 tomcat8-apr:3.0
[root@wxtest1607 lixr]#
[root@wxtest1607 lixr]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat8-apr 3.0 90457edaf6ff 7 hours ago 1.036 GB
3. Export of containers
[root@wxtest1607 lixr]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b91d9ad83efa 9045 "/bin/bash" 18 seconds ago Up 15 seconds trusting_colden
f680b58163ab aa79 "/bin/bash" 8 hours ago Up 8 hours stupefied_mayer
4db6aa9b8278 4052 "mysqld_safe" 21 hours ago Up 21 hours 8080/tcp, 0.0.0.0:53307->3306/tcp nostalgic_leavitt
7bcfe52af7a0 599d "mysqld_safe" 21 hours ago Up 21 hours 8080/tcp, 0.0.0.0:53306->3306/tcp sleepy_hodgkin
[root@wxtest1607 lixr]#
[root@wxtest1607 lixr]#
[root@wxtest1607 lixr]# docker export b91d9ad83efa > tomcat80824.tar
[root@wxtest1607 lixr]# ls -lh
Total dosage 2.1G
-rw-r--r-- 1 root root 943M 8 Month 24 18:37 tomcat80824.tar
-rw-r--r-- 1 root root 1005M 8 Month 24 17:42 tomcat8-apr.tar
b91d9ad83efa is the container after the mirror 90457edaf6ff is started.
The mirror export file is larger than the container export file.
4. Import of containers
[root@wxtest1607 lixr]# docker import tomcat80824.tar
sha256:880fc96a6bb6abdfa949a56d40ef76f32f086fa11024ddcfb4e4e8b22041d5f2
[root@wxtest1607 lixr]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 880fc96a6bb6 6 seconds ago 971.9 MB
[root@wxtest1607 lixr]# docker tag 880f tomcat80824:1.0
[root@wxtest1607 lixr]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat80824 1.0 880fc96a6bb6 About a minute ago 971.9 MB
tomcat8-apr 3.0 90457edaf6ff 8 hours ago 1.036 GB
5. The difference between mirroring and container export and import
The difference between mirror import and container import:
1) Container import is to change the current container into a new image
2) Mirror import is the process of replication
Difference between save and export:
1) save saves all information about the image-including history
2) export only exports current information
[root@wxtest1607 lixr]# docker history 880fc96a6bb6
IMAGE CREATED CREATED BY SIZE COMMENT
880fc96a6bb6 12 minutes ago 971.9 MB Imported from -
[root@wxtest1607 lixr]# docker history 90457edaf6ff
IMAGE CREATED CREATED BY SIZE COMMENT
90457edaf6ff 8 hours ago /bin/bash 434.4 MB
<missing> 23 hours ago /bin/bash 406.5 MB
<missing> 7 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B
<missing> 7 weeks ago /bin/sh -c #(nop) LABEL license=GPLv2 0 B
<missing> 7 weeks ago /bin/sh -c #(nop) LABEL vendor=CentOS 0 B
<missing> 7 weeks ago /bin/sh -c #(nop) LABEL name=CentOS Base Imag 0 B
<missing> 7 weeks ago /bin/sh -c #(nop) ADD file:b3bdbca0669a03490e 194.6 MB
<missing> 7 weeks ago /bin/sh -c #(nop) MAINTAINER The CentOS Proje 0 B
Supplement: docker images Explanation
docker images is used to view locally downloaded images
[root@localhost ~]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 1e1148e4cc2c 2 weeks ago 202MB
ubuntu latest 93fd78260bd1 5 weeks ago 86.2MB
REPOSITORY # Mirror warehouse
TAG # Mirror label
IMAGE ID # Mirror image ID
CREATED # Image creation time
SIZE # Mirror size