资讯专栏INFORMATION COLUMN

Docker镜像的全流程实践

IT那活儿 / 1926人阅读
Docker镜像的全流程实践

点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

没有Docker镜像没有Docker容器,在Docker中,镜像的重要性不言而喻,话不多说,就让我们与Docker镜像亲密接触吧!


Docker镜像简介

Docker镜像可以理解为是一个包含OS文件系统和应用的模板或对象,Docker容器是其运行的实例,有镜像才能启动容器。
Docker镜像是由文件系统叠加而成的,分层的结构,每一层都称为一个镜像。一个镜像可以放在另一个镜像的顶部,位于下面的称为父镜像,镜像栈最底部的镜像称为基础镜像。也就是说,可以以一个镜像创建一个新的镜像。
Docker镜像保存在仓库中,而仓库存在Registry中。默认的Registry是由Docker公司运营的公共的Registry服务,即Docker Hub。也可以自建Registry来保存镜像。
Docker镜像的全流程如下图:



Docker镜像的构建

构建Docker镜像的常见方法有两种:
方法一:使用docker commit命令
docker commit创建镜像就像往版本控制系统里面提交变更,先创建一个容器,并在容器里面做修改,最后将修改提交为一个新的镜像。
基于ubuntu基础镜像创建新的容器,再在容器里面安装apache2,如下图:
镜像创建容器:docker run -i -t ubuntu /bin/bash
容器再docker commit提交创建新的镜像,指定镜像的用户名和仓库名(sunhuawei23/apache2),或增加标签(webserver),如下图:
方法二:使用docker build命令和Dockerfile文件
Dockerfile使用基本的基于DSL语法的指令来构建Docker镜像。Dockerfile文件创建后,就可以使用docker build命令基于该文件中的指令构建镜像。
Dockerfile由一系列指令和参数组成。每条指令,都是大写字母,且后跟一个参数,如FROM ubuntu。如下图:
Dockerfile中的指令会按顺序从上到下执行,每条指令都会创建一个新的镜像层,并对镜像进行提交。
执行docker build命令,Dockerfile中的所有指令都会被执行且提交,并在成功结束后返回一个新的镜像。如下图:

Docker镜像的使用

3.1 docker push镜像上传仓库
构建镜像后,重要一环是如何共享和发布镜像。可以将镜像推送到Docker Hub(需要创建账号)或用户自己的私有Registry中。
登录Docker Hub,使用docker login命令,如下:
完成登录Docker Hub后,认证信息会保存供后面使用,用户认证信息保存在$HOME/.docker/config.json。可以使用dockerlogout命令从Registry服务器退出。
镜像构建完毕和登录Docker Hub后,就可以将镜像上传至Docker Hub,通过docker push命令docker push sunhuawei23/static_web推送。如下:
3.2 查找仓库的镜像
docker search命令来查找Docker Hub上公共的可用镜像。如下图:
3.3 列出本地的镜像
docker images命令列出本地镜像,如下图:
3.4 docker pull从仓库拉取镜像
Docker运行容器前需要本地存在对应的镜像,如果镜像不存在,Docker会先从默认的镜像仓库Docker Hub拉取镜像。
查找到镜像后,可以docker pull主动拉取镜像,拉取镜像时,没有指定标签的话,默认自动下载latest标签的镜像。如下:
3.5 docker rmi删除镜像
不再需要的镜像,可以删除,使用docker rmi命令,docker rmi sunhuawei23/apache2 sunhuawei23/static_web。如下图:
至此,Docker镜像的全流程:创建、上传、下载、运行和删除已介绍完毕。Docker镜像是使用Docker的前提,大家平时可以多积累他人创建的镜像,也可以分享自己创建的镜像。


本文作者:孙华伟(上海新炬王翦团队)

本文来源:“IT那活儿”公众号

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129157.html

相关文章

  • 如何利用Docker构建基于DevOps的全自动CI

    摘要:三私有代码库阿里云使用引言使用肯定离不开和代码的集成。本着代码可靠性,服务器稳定性,功能扩展性综合对比,我们选择使用阿里云的库。 来自用户的DevOps实践分享,分享从开发代码到生产环境部署的一条龙操作的实践及经验, 包含工具技术的选型及考量、私有代码库与私有镜像库的应用等。 (一)容器服务的Rancher选型 1、为什么说是下一代核心技术 从互联网的多次变革说起,早期的C/S架构,到...

    stormzhang 评论0 收藏0
  • 超长干货:基于Docker的DevOps CI/CD实践——来自iHealth的分享

    摘要:在猫屎氤氲的雾气里角仰望天花板,手机微信提醒这次构建成功或失败,并附带污言秽语。这时他可以开始往工位走,坐下时,微信又会提醒本次部署到成功或失败。与企业微信的集成在决定使用之前,需要知道的是,是一个高度依赖社区的项目。 前言 相信我,一切事情的发生都是赶鸭子上架,没有例外。人类所有伟大的变革都是迫不得已,可又是那么顺其自然。比如容器(docker)技术的诞生,比如箭在弦上的创业,比如野...

    Dongjie_Liu 评论0 收藏0
  • Docker和容器云落地一年后的反思

    摘要:这里我想从我在谷歌内部使用容器,并基于容器研发大规模生产平台的经验中谈谈现有和谷歌容器环境的差别,并通过的实际案例落地经验总结下自身所带来的一些谎言和误区。 我与容器的缘分起源于我在 Google 内部研发容器集群管理系: Cluster Management。谷歌内部一切皆容器,搜索、视频、大数据、内部工具等核心业务都以容器的方式运行在容器编排系统 Borg 上。2014年,随着公司...

    _ang 评论0 收藏0
  • 数人云|20种终极工具,为你的Docker搭建安全防火墙

    摘要:为容器设计的商业安全套件,功能包括安全审计容器镜像验证运行时保护自动策略学习或入侵预防。基于一种称为的新内核技术,允许根据容器身份定义并执行网络层和层安全策略。自动发现应用程序容器和服务的行为,以及与其他类似方式检测安全升级和其他威胁。 数人云:随着越来越多的企业将生产工作负载迁移到容器当中,关于Docker的安全性,成了普遍关注的问题。 这是一个简单却又没有答案的问题,不要试图用二进...

    jlanglang 评论0 收藏0
  • Docker + Jenkins + webhooks 自动部署基础实践

    摘要:自动部署基础实践熟悉的基本操作实现本地后自动构建部署服务此实践用于优化自己在实际工作中的工作流在本地开发到服务器登录云服务器或者简化流程后本地开发云服务器自动构建部署本实践将结合技术来实现云服务器对各种环境的切换与部署。 Docker + Jenkins + webhooks 自动部署基础实践 熟悉 jenkins 的基本操作 ☑️ 实现本地 git push 后 jenkins 自...

    Charlie_Jade 评论0 收藏0
  • 五阿哥钢铁电商平台Docker容器云平台建设实践——你想知道的都在这里!

    摘要:容器云架构方案。容器云架构方案基于容器技术,运维技术团队开发了五阿哥网站的容器云平台。多云对接私有云和公有云进行统一托管,包含网络区域配置,实例开通及的环境初始化配置等。技术选型及实践镜像标准众所周知,的镜像是分层的。 前言 五阿哥钢铁电商平台(www.wuage.com)是由钢铁行业第一的中国五矿与互联网第一的阿里巴巴联手打造,并充分运用双方股东优势资源,即:阿里巴巴在大数据、电商运...

    jeffrey_up 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<