docker镜像的导入和导出的实现

gitlab 的docker使用

gitlab docker

启动命令

123docker run -d -p 3000:80 twang2218/gitlab-ce-zh:9.0.3 docker run -d -p 8080:80 gitlab/gitlab-ce:latest

将容器修改提交到镜像

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455# 进入容器内部[root@#localhost docker]# docker run -ti ubuntu:14.04 /bin/bashroot@812a997f614a:/# id uid=0(root) gid=0(root) groups=0(root) #做了一些修改root@812a997f614a:/# echo update>update.txtroot@812a997f614a:/# exitexit [root@#localhost docker]# docker ps -aCONTAINER ID    IMAGE             COMMAND         CREATED       STATUS              PORTS                  NAMES812a997f614a    ubuntu:14.04          "/bin/bash"       7 minutes ago    Exited (0) 22 seconds ago                        zealous_euler69304dea46c7    gitlab/gitlab-ce:latest    "/assets/wrapper"    About an hour ago  Exited (127) 44 minutes ago                       competent_minsky67ba866e21b0    gitlab/gitlab-ce:latest    "/assets/wrapper"    2 hours ago     Exited (137) About an hour ago                      hungry_hoover2a3d08a0a2ff    twang2218/gitlab-ce-zh:9.0.3  "/assets/wrapper"    2 hours ago     Exited (137) About an hour ago                      nervous_wozniak6db49540be99    twang2218/gitlab-ce-zh:9.0.3  "/assets/wrapper"    2 hours ago     Exited (255) 2 hours ago     22/tcp, 443/tcp, 0.0.0.0:3000->80/tcp  romantic_elionb08a6d6ed716    gitlab/gitlab-ce:latest    "/assets/wrapper"    2 hours ago     Exited (255) 2 hours ago     22/tcp, 443/tcp, 0.0.0.0:8080->80/tcp  competent_brahmagupta33fd0b1ebd27    gitlab/gitlab-ce:latest    "/assets/wrapper"    2 hours ago     Exited (127) 2 hours ago                         loving_brattain6f53620a930c    twang2218/gitlab-ce-zh:9.0.3  "/assets/wrapper"    3 hours ago     Exited (127) 2 hours ago                         brave_galileo88df78f77c4e    ubuntu:14.04          "sleep 360"       4 days ago     Exited (137) 4 days ago                         testcopy81a879a36bd3    wordpress           "docker-entrypoint..."  4 days ago     Exited (0) 4 days ago                          wordpressa57a3cc492b7    mysql             "docker-entrypoint..."  4 days ago     Exited (0) 4 days ago                          mysqlwp # 将修改多的镜像保存成一个新的[root@#localhost docker]# docker commit 812a997f614a ubuntu:updatesha256:317f102584605694da424bc96764559a1ccfda13943353f4cbdfd89c96515e6b [root@#localhost docker]# docker imagesREPOSITORY         TAG         IMAGE ID      CREATED       SIZEubuntu           update       317f10258460    5 seconds ago    188 MBtwang2218/gitlab-ce-zh   9.0.3        36172b5fefab    44 hours ago    1.19 GBgitlab/gitlab-ce      latest       5eff2e44957c    2 days ago     1.11 GBmysql            latest       9546ca122d3a    8 days ago     407 MBwordpress          latest       4ad41adc2794    2 weeks ago     401 MBubuntu           14.04        7c09e61e9035    5 weeks ago     188 MBdaocloud.io/library/nginx  1.7.1        e3e043d3ed2f    2 years ago     499 MB # 查看修改多的镜像和原来镜像之间的差异[root@#localhost docker]# docker diff 812a997f614aC /varC /var/cacheC /var/cache/aptD /var/cache/apt/srcpkgcache.binD /var/cache/apt/pkgcache.binC /var/libC /var/lib/aptC /var/lib/apt/listsA /var/lib/apt/lists/lockA /var/lib/apt/lists/partialA /var/lib/apt/lists/partial/archive.ubuntu.com_ubuntu_dists_trusty-updates_InReleaseA /update.txtC /rootA /root/.bash_history[root@#localhost docker]#

镜像的导入和导出

export 和improt

1234567891011121314151617181920212223242526272829303132333435363738[root@#localhost docker]# docker run -ti ubuntu:update /bin/bashroot@cbe3cb7799ed:/# lsbin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp update.txt usr var [root@#localhost docker]# [root@#localhost docker]# docker ps -aCONTAINER ID    IMAGE             COMMAND         CREATED       STATUS            PORTS                  NAMEScbe3cb7799ed    ubuntu:update         "/bin/bash"       47 seconds ago   Exited (1) 6 seconds ago                       adoring_kare812a997f614a    ubuntu:14.04          "/bin/bash"       16 minutes ago   Exited (0) 8 minutes ago                       zealous_euler69304dea46c7    gitlab/gitlab-ce:latest    "/assets/wrapper"    2 hours ago     Exited (127) 53 minutes ago                      competent_minsky67ba866e21b0    gitlab/gitlab-ce:latest    "/assets/wrapper"    2 hours ago     Exited (137) 2 hours ago                       hungry_hoover2a3d08a0a2ff    twang2218/gitlab-ce-zh:9.0.3  "/assets/wrapper"    2 hours ago     Exited (137) 2 hours ago                       nervous_wozniak6db49540be99    twang2218/gitlab-ce-zh:9.0.3  "/assets/wrapper"    2 hours ago     Exited (255) 2 hours ago   22/tcp, 443/tcp, 0.0.0.0:3000->80/tcp  romantic_elionb08a6d6ed716    gitlab/gitlab-ce:latest    "/assets/wrapper"    2 hours ago     Exited (255) 2 hours ago   22/tcp, 443/tcp, 0.0.0.0:8080->80/tcp  competent_brahmagupta33fd0b1ebd27    gitlab/gitlab-ce:latest    "/assets/wrapper"    3 hours ago     Exited (127) 2 hours ago                       loving_brattain6f53620a930c    twang2218/gitlab-ce-zh:9.0.3  "/assets/wrapper"    3 hours ago     Exited (127) 2 hours ago                       brave_galileo88df78f77c4e    ubuntu:14.04          "sleep 360"       4 days ago     Exited (137) 4 days ago                        testcopy81a879a36bd3    wordpress           "docker-entrypoint..."  4 days ago     Exited (0) 4 days ago                         wordpressa57a3cc492b7    mysql             "docker-entrypoint..."  4 days ago     Exited (0) 4 days ago                         mysqlwp # 将镜像导出到文件[root@#localhost docker]# docker export cbe3cb7799ed > update.tar  # 创建一个新静像从基于导出的文件[root@#localhost /]# docker import - update < update.tar sha256:fd00d520a43eb5dc6cca8717fe0ca04cfdc53b02cad2fb5b50d877b8e6d6c3bc[root@#localhost /]# docker imagesREPOSITORY         TAG         IMAGE ID      CREATED       SIZEupdate           latest       fd00d520a43e    13 seconds ago   165 MBubuntu           update       317f10258460    11 minutes ago   188 MBtwang2218/gitlab-ce-zh   9.0.3        36172b5fefab    44 hours ago    1.19 GBgitlab/gitlab-ce      latest       5eff2e44957c    2 days ago     1.11 GBmysql            latest       9546ca122d3a    8 days ago     407 MBwordpress          latest       4ad41adc2794    2 weeks ago     401 MBubuntu           14.04        7c09e61e9035    5 weeks ago     188 MBdaocloud.io/library/nginx  1.7.1        e3e043d3ed2f    2 years ago     499 MB[root@#localhost /]#

save 和load

(像当与镜像的备份和恢复)

1234567891011121314151617181920212223242526272829303132333435363738# update是一个已经存在的镜像[root@#localhost /]# docker save -o update1.tar update[root@#localhost /]# lsbin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp update1.tar update.tar usr var[root@#localhost /]# du -sh update1.tar 166M  update1.tar # 删除update镜像[root@#localhost /]# docker rmi updateUntagged: update:latestDeleted: sha256:fd00d520a43eb5dc6cca8717fe0ca04cfdc53b02cad2fb5b50d877b8e6d6c3bcDeleted: sha256:14cc8cd7b783152682835346e5fe90860a9feeb684866688692285319d4e97ad [root@#localhost /]# docker imagesREPOSITORY         TAG         IMAGE ID      CREATED       SIZEubuntu           update       317f10258460    16 minutes ago   188 MBtwang2218/gitlab-ce-zh   9.0.3        36172b5fefab    44 hours ago    1.19 GBgitlab/gitlab-ce      latest       5eff2e44957c    2 days ago     1.11 GBmysql            latest       9546ca122d3a    8 days ago     407 MBwordpress          latest       4ad41adc2794    2 weeks ago     401 MBubuntu           14.04        7c09e61e9035    5 weeks ago     188 MBdaocloud.io/library/nginx  1.7.1        e3e043d3ed2f    2 years ago     499 MB #导入镜像[root@#localhost /]# docker load < update1.tar 14cc8cd7b783: Loading layer [==================================================>] 173.8 MB/173.8 MBLoaded image: update:latest[root@#localhost /]# docker imagesREPOSITORY         TAG         IMAGE ID      CREATED       SIZEupdate           latest       fd00d520a43e    6 minutes ago    165 MBubuntu           update       317f10258460    17 minutes ago   188 MBtwang2218/gitlab-ce-zh   9.0.3        36172b5fefab    44 hours ago    1.19 GBgitlab/gitlab-ce      latest       5eff2e44957c    2 days ago     1.11 GBmysql            latest       9546ca122d3a    8 days ago     407 MBwordpress          latest       4ad41adc2794    2 weeks ago     401 MBubuntu           14.04        7c09e61e9035    5 weeks ago     188 MBdaocloud.io/library/nginx  1.7.1        e3e043d3ed2f    2 years ago     499 MB[root@#localhost /]#

Dockerfile

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647[root@#localhost ~]# mkdir docker_file[root@#localhost ~]# cd docker_file/ [root@#localhost docker_file]# vi Dockerfile  [root@#localhost docker_file]# cat Dockerfile FROM ubuntu:14.04 ENTRYPOINT ["/bin/echo"] [root@#localhost docker_file]# docker build .Sending build context to Docker daemon 2.048 kBStep 1/2 : FROM ubuntu:14.04---> 7c09e61e9035Step 2/2 : ENTRYPOINT /bin/echo---> Running in d53f31b93355---> 26dd06d2e5a5Removing intermediate container d53f31b93355Successfully built 26dd06d2e5a5 #运行镜像 [root@#localhost docker_file]# docker run 26dd06d2e5a5 #加入一个参数 [root@#localhost docker_file]# docker run 26dd06d2e5a5 hello worldhello world[root@#localhost docker_file]# vi Dockerfile [root@#localhost docker_file]# docker run 26dd06d2e5a5 hello worldhello world  #[root@#localhost docker_file]# cat Dockerfile FROM ubuntu:14.04 #ENTRYPOINT ["/bin/echo","Hi world!"]CMD ["/bin/echo","Hi world!"] [root@#localhost docker_file]# docker build .[root@#localhost docker_file]# docker run 12458a717cedHi world!  [root@#localhost docker_file]# docker run 12458a717ced /bin/date Sat Apr 8 12:08:14 UTC 2017

构建的时候打个标签

123456789101112131415161718192021[root@#localhost docker_file]# docker build -t yang:01 .Sending build context to Docker daemon 3.584 kBStep 1/2 : FROM ubuntu:14.04---> 7c09e61e9035Step 2/2 : CMD /bin/echo Hi world!---> Running in 94e510f085d7---> 6b33c8a6a32fRemoving intermediate container 94e510f085d7Successfully built 6b33c8a6a32f[root@#localhost docker_file]# docker imagesREPOSITORY         TAG         IMAGE ID      CREATED       SIZEyang            01         6b33c8a6a32f    5 seconds ago    188 MBupdate           latest       fd00d520a43e    29 minutes ago   165 MBubuntu           update       317f10258460    41 minutes ago   188 MBtwang2218/gitlab-ce-zh   9.0.3        36172b5fefab    44 hours ago    1.19 GBgitlab/gitlab-ce      latest       5eff2e44957c    2 days ago     1.11 GBmysql            latest       9546ca122d3a    8 days ago     407 MBwordpress          latest       4ad41adc2794    2 weeks ago     401 MBubuntu           14.04        7c09e61e9035    5 weeks ago     188 MBdaocloud.io/library/nginx  1.7.1        e3e043d3ed2f    2 years ago     499 MB[root@#localhost docker_file]#

构建实例

将flask应用 打包的镜像中

编写python程序 hellp.py

1234567891011#!/usr/bin/env python from flask import Flaskapp = Flask(__name__) @app.route('/hi')def hello_world():return 'Hello World!' if __name__ == '__main__':app.run(host='0.0.0.0', port=5000)

编写Dockerfile

1234567891011121314FROM ubuntu:14.04 RUN apt-get updateRUN apt-get install -y pythonRUN apt-get install -y python-pipRUN apt-get clean all RUN pip install flask ADD hello.py /tmp/hello.py EXPOSE 5000 CMD ["python","/tmp/hello.py"]

到此这篇关于docker镜像的导入和导出的实现的文章就介绍到这了,更多相关docker镜像导入导出内容请搜索kinponet以前的文章或继续浏览下面的相关文章希望大家以后多多支持kinponet!

原创文章,作者:Zhu, Yuanyuan,如若转载,请注明出处:https://www.yidc.net/archives/11447