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

 更新时间:2021年01月10日 10:02:44   作者:贤时间  
这篇文章主要介绍了docker镜像的导入和导出的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

gitlab 的docker使用

gitlab docker

启动命令

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

docker run -d -p 8080:80 gitlab/gitlab-ce:latest

将容器修改提交到镜像

# 进入容器内部
[root@#localhost docker]# docker run -ti ubuntu:14.04 /bin/bash
root@812a997f614a:/# id 
uid=0(root) gid=0(root) groups=0(root)

#做了一些修改
root@812a997f614a:/# echo update>update.txt
root@812a997f614a:/# exit
exit

[root@#localhost docker]# docker ps -a
CONTAINER ID    IMAGE             COMMAND         CREATED       STATUS              PORTS                  NAMES
812a997f614a    ubuntu:14.04          "/bin/bash"       7 minutes ago    Exited (0) 22 seconds ago                        zealous_euler
69304dea46c7    gitlab/gitlab-ce:latest    "/assets/wrapper"    About an hour ago  Exited (127) 44 minutes ago                       competent_minsky
67ba866e21b0    gitlab/gitlab-ce:latest    "/assets/wrapper"    2 hours ago     Exited (137) About an hour ago                      hungry_hoover
2a3d08a0a2ff    twang2218/gitlab-ce-zh:9.0.3  "/assets/wrapper"    2 hours ago     Exited (137) About an hour ago                      nervous_wozniak
6db49540be99    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_elion
b08a6d6ed716    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_brahmagupta
33fd0b1ebd27    gitlab/gitlab-ce:latest    "/assets/wrapper"    2 hours ago     Exited (127) 2 hours ago                         loving_brattain
6f53620a930c    twang2218/gitlab-ce-zh:9.0.3  "/assets/wrapper"    3 hours ago     Exited (127) 2 hours ago                         brave_galileo
88df78f77c4e    ubuntu:14.04          "sleep 360"       4 days ago     Exited (137) 4 days ago                         testcopy
81a879a36bd3    wordpress           "docker-entrypoint..."  4 days ago     Exited (0) 4 days ago                          wordpress
a57a3cc492b7    mysql             "docker-entrypoint..."  4 days ago     Exited (0) 4 days ago                          mysqlwp

# 将修改多的镜像保存成一个新的
[root@#localhost docker]# docker commit 812a997f614a ubuntu:update
sha256:317f102584605694da424bc96764559a1ccfda13943353f4cbdfd89c96515e6b

[root@#localhost docker]# docker images
REPOSITORY         TAG         IMAGE ID      CREATED       SIZE
ubuntu           update       317f10258460    5 seconds ago    188 MB
twang2218/gitlab-ce-zh   9.0.3        36172b5fefab    44 hours ago    1.19 GB
gitlab/gitlab-ce      latest       5eff2e44957c    2 days ago     1.11 GB
mysql            latest       9546ca122d3a    8 days ago     407 MB
wordpress          latest       4ad41adc2794    2 weeks ago     401 MB
ubuntu           14.04        7c09e61e9035    5 weeks ago     188 MB
daocloud.io/library/nginx  1.7.1        e3e043d3ed2f    2 years ago     499 MB

# 查看修改多的镜像和原来镜像之间的差异
[root@#localhost docker]# docker diff 812a997f614a
C /var
C /var/cache
C /var/cache/apt
D /var/cache/apt/srcpkgcache.bin
D /var/cache/apt/pkgcache.bin
C /var/lib
C /var/lib/apt
C /var/lib/apt/lists
A /var/lib/apt/lists/lock
A /var/lib/apt/lists/partial
A /var/lib/apt/lists/partial/archive.ubuntu.com_ubuntu_dists_trusty-updates_InRelease
A /update.txt
C /root
A /root/.bash_history
[root@#localhost docker]# 

镜像的导入和导出

export 和improt

[root@#localhost docker]# docker run -ti ubuntu:update /bin/bash
root@cbe3cb7799ed:/# ls
bin 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 -a
CONTAINER ID    IMAGE             COMMAND         CREATED       STATUS            PORTS                  NAMES
cbe3cb7799ed    ubuntu:update         "/bin/bash"       47 seconds ago   Exited (1) 6 seconds ago                       adoring_kare
812a997f614a    ubuntu:14.04          "/bin/bash"       16 minutes ago   Exited (0) 8 minutes ago                       zealous_euler
69304dea46c7    gitlab/gitlab-ce:latest    "/assets/wrapper"    2 hours ago     Exited (127) 53 minutes ago                      competent_minsky
67ba866e21b0    gitlab/gitlab-ce:latest    "/assets/wrapper"    2 hours ago     Exited (137) 2 hours ago                       hungry_hoover
2a3d08a0a2ff    twang2218/gitlab-ce-zh:9.0.3  "/assets/wrapper"    2 hours ago     Exited (137) 2 hours ago                       nervous_wozniak
6db49540be99    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_elion
b08a6d6ed716    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_brahmagupta
33fd0b1ebd27    gitlab/gitlab-ce:latest    "/assets/wrapper"    3 hours ago     Exited (127) 2 hours ago                       loving_brattain
6f53620a930c    twang2218/gitlab-ce-zh:9.0.3  "/assets/wrapper"    3 hours ago     Exited (127) 2 hours ago                       brave_galileo
88df78f77c4e    ubuntu:14.04          "sleep 360"       4 days ago     Exited (137) 4 days ago                        testcopy
81a879a36bd3    wordpress           "docker-entrypoint..."  4 days ago     Exited (0) 4 days ago                         wordpress
a57a3cc492b7    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 images
REPOSITORY         TAG         IMAGE ID      CREATED       SIZE
update           latest       fd00d520a43e    13 seconds ago   165 MB
ubuntu           update       317f10258460    11 minutes ago   188 MB
twang2218/gitlab-ce-zh   9.0.3        36172b5fefab    44 hours ago    1.19 GB
gitlab/gitlab-ce      latest       5eff2e44957c    2 days ago     1.11 GB
mysql            latest       9546ca122d3a    8 days ago     407 MB
wordpress          latest       4ad41adc2794    2 weeks ago     401 MB
ubuntu           14.04        7c09e61e9035    5 weeks ago     188 MB
daocloud.io/library/nginx  1.7.1        e3e043d3ed2f    2 years ago     499 MB
[root@#localhost /]# 

save 和load

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

# update是一个已经存在的镜像
[root@#localhost /]# docker save -o update1.tar update
[root@#localhost /]# ls
bin 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 update
Untagged: update:latest
Deleted: sha256:fd00d520a43eb5dc6cca8717fe0ca04cfdc53b02cad2fb5b50d877b8e6d6c3bc
Deleted: sha256:14cc8cd7b783152682835346e5fe90860a9feeb684866688692285319d4e97ad

[root@#localhost /]# docker images
REPOSITORY         TAG         IMAGE ID      CREATED       SIZE
ubuntu           update       317f10258460    16 minutes ago   188 MB
twang2218/gitlab-ce-zh   9.0.3        36172b5fefab    44 hours ago    1.19 GB
gitlab/gitlab-ce      latest       5eff2e44957c    2 days ago     1.11 GB
mysql            latest       9546ca122d3a    8 days ago     407 MB
wordpress          latest       4ad41adc2794    2 weeks ago     401 MB
ubuntu           14.04        7c09e61e9035    5 weeks ago     188 MB
daocloud.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 MB
Loaded image: update:latest
[root@#localhost /]# docker images
REPOSITORY         TAG         IMAGE ID      CREATED       SIZE
update           latest       fd00d520a43e    6 minutes ago    165 MB
ubuntu           update       317f10258460    17 minutes ago   188 MB
twang2218/gitlab-ce-zh   9.0.3        36172b5fefab    44 hours ago    1.19 GB
gitlab/gitlab-ce      latest       5eff2e44957c    2 days ago     1.11 GB
mysql            latest       9546ca122d3a    8 days ago     407 MB
wordpress          latest       4ad41adc2794    2 weeks ago     401 MB
ubuntu           14.04        7c09e61e9035    5 weeks ago     188 MB
daocloud.io/library/nginx  1.7.1        e3e043d3ed2f    2 years ago     499 MB
[root@#localhost /]# 

Dockerfile

[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 kB
Step 1/2 : FROM ubuntu:14.04
 ---> 7c09e61e9035
Step 2/2 : ENTRYPOINT /bin/echo
 ---> Running in d53f31b93355
 ---> 26dd06d2e5a5
Removing intermediate container d53f31b93355
Successfully built 26dd06d2e5a5

#运行镜像

[root@#localhost docker_file]# docker run 26dd06d2e5a5

#加入一个参数

[root@#localhost docker_file]# docker run 26dd06d2e5a5 hello world
hello world
[root@#localhost docker_file]# vi Dockerfile 
[root@#localhost docker_file]# docker run 26dd06d2e5a5 hello world
hello 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 12458a717ced
Hi world!


[root@#localhost docker_file]# docker run 12458a717ced /bin/date 
Sat Apr 8 12:08:14 UTC 2017


构建的时候打个标签

[root@#localhost docker_file]# docker build -t yang:01 .
Sending build context to Docker daemon 3.584 kB
Step 1/2 : FROM ubuntu:14.04
 ---> 7c09e61e9035
Step 2/2 : CMD /bin/echo Hi world!
 ---> Running in 94e510f085d7
 ---> 6b33c8a6a32f
Removing intermediate container 94e510f085d7
Successfully built 6b33c8a6a32f
[root@#localhost docker_file]# docker images
REPOSITORY         TAG         IMAGE ID      CREATED       SIZE
yang            01         6b33c8a6a32f    5 seconds ago    188 MB
update           latest       fd00d520a43e    29 minutes ago   165 MB
ubuntu           update       317f10258460    41 minutes ago   188 MB
twang2218/gitlab-ce-zh   9.0.3        36172b5fefab    44 hours ago    1.19 GB
gitlab/gitlab-ce      latest       5eff2e44957c    2 days ago     1.11 GB
mysql            latest       9546ca122d3a    8 days ago     407 MB
wordpress          latest       4ad41adc2794    2 weeks ago     401 MB
ubuntu           14.04        7c09e61e9035    5 weeks ago     188 MB
daocloud.io/library/nginx  1.7.1        e3e043d3ed2f    2 years ago     499 MB
[root@#localhost docker_file]# 

构建实例

将flask应用 打包的镜像中

编写python程序 hellp.py

#!/usr/bin/env python

from flask import Flask
app = Flask(__name__)

@app.route('/hi')
def hello_world():
  return 'Hello World!'

if __name__ == '__main__':
  app.run(host='0.0.0.0', port=5000)

编写Dockerfile

FROM ubuntu:14.04

RUN apt-get update
RUN apt-get install -y python
RUN apt-get install -y python-pip
RUN apt-get clean all

RUN pip install flask

ADD hello.py /tmp/hello.py

EXPOSE 5000

CMD ["python","/tmp/hello.py"]

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

相关文章

  • 在Docker中安装Oracle数据库超详细步骤

    在Docker中安装Oracle数据库超详细步骤

    oracle作为全球最强大的关系型数据库,应用在各行各业,下面这篇文章主要给大家介绍了关于在Docker中安装Oracle数据库的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • 使用Docker容器部署Vue程序

    使用Docker容器部署Vue程序

    这篇文章介绍了使用Docker容器部署Vue程序的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • Docker安装分布式vLLM的实现步骤

    Docker安装分布式vLLM的实现步骤

    本文主要介绍了Docker使用vLLM库进行分布式推理和服务部署,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-03-03
  • 详解Docker之Compose服务编排

    详解Docker之Compose服务编排

    Compose是Docker的服务编排工具,主要用来构建基于Docker的复杂应用,Compose 通过一个配置文件来管理多个Docker容器,非常适合组合使用多个容器进行开发的场景。兴趣的小伙伴们可以参考一下
    2018-07-07
  • 快速使用docker-compose部署clickhouse的教程

    快速使用docker-compose部署clickhouse的教程

    ClickHouse 的工作速度比传统方法快 100-1000 倍。它适用于大数据、业务分析和时间序列数据。在这个小教程中,我将向您展示如何以最少的设置安装 ClickHouse,感兴趣的朋友一起看看吧
    2021-11-11
  • nerdctl替代docker及docker-compose的安装使用

    nerdctl替代docker及docker-compose的安装使用

    这篇文章主要为大家介绍了nerdctl替代docker及docker-compose的安装使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • 一文带你彻底搞懂Docker中的cgroup的具体使用

    一文带你彻底搞懂Docker中的cgroup的具体使用

    本文主要介绍了Docker中的cgroup的具体使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • iptables使用及docker的iptables规则

    iptables使用及docker的iptables规则

    Docker在创建容器时,会自动添加一些iptables规则来实现网络隔离和转发等功能,本文主要介绍了iptables使用及docker的iptables规则,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • Docker构建ELK Docker集群日志收集系统

    Docker构建ELK Docker集群日志收集系统

    为了在Docker集群中更好的管理查看日志 我们使用Docker 来搭建集群的ELK日志收集系统,这篇文章介绍了Docker构建ELK Docker集群日志收集系统的相关资料,需要的朋友可以参考下
    2016-11-11
  • Docker容器操作方法详解

    Docker容器操作方法详解

    Docker 在隔离的容器中运行进程。之前总结了Docker镜像的使用详解,本篇按照之前测试openGauss容器过程中总结出来使用Docker容器的常用命令
    2022-08-08

最新评论