`

docker实例入门(下)

阅读更多

接上一篇:docker实例入门(上)

https://www.iteye.com/blog/songdi5403-2477645

 

继续以nginx镜像为例介绍docker的一些基本操作

 

 

7. 编写Dockerfile文件创建自己的镜像

Dockerfile 文件用于指示如何创建你的镜像。格式由一行行命令语句组成,并且支持以 # 开头的注释行。Dockerfile 分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令

docker文件的编写比较复杂,本文只以一个例子让大家体验dockerfile文件的作用

 

dockerfile有以下常用指令:

FROM指令
指明所基于的镜像名称

之前说过docker是分层,相当于一层文件以另一层为基础创建,我们实际编写时也要

以来已存在的一层或多层的基础镜像,不重复造轮子

 

格式为 FROM <image>FROM <image>:<tag>
 
MAINTAINER

指定维护者信息,让别人知道这个镜像是谁创建的,类似于git仓库创建时要指定用户名和邮箱

格式为

MAINTAINER <name>

 

RUN

执行命令并创建新的镜像层,通常用于安装软件包

每运行一条 RUN 指令,镜像添加新的一层,并提交

格式为

RUN <command>RUN ["executable", "param1", "param2"]

 

ADD
格式为 ADD <src> <dest>
该命令将复制指定的 <src> 到容器中的 <dest>。 其中 <src> 可以是Dockerfile所在目录的一个相对路径;也可以是一个 URL;还可以是一个 tar 文件(自动解压为目录)
 
例子:以nginx为基础镜像,将当前目录下所有文件添加到nginx容器的html目录中


创建好dockerfile文件后,就可以用docker build命令运行它来创建自己的镜像

 

 

8.docker build
命令用于使用 Dockerfile 创建镜像
常用参数:
-t: 镜像的名字及标签,通常 name:tag 或者 name 格式,不写tag就是latest(最新版本)
-f :指定要使用的Dockerfile路径
1)在dockerfile文件所在目录创建一个html文件another.html,随便编辑点啥保存退出
vi another.html

 
2)docker build -t 镜像名 .
使用当前路径的dockerfile文件创建镜像,创建完成后使用docker images查看

 

 

3)使用该镜像启动一个新的容器(docker run)


访问之前build时构造到该容器的文件



 

可以看到,nginx的首页已被替换成我们自己的页面,nginx的基础功能仍然复用基础镜像。实际的工作中通常也是这样,以已存在的一个或多个镜像为基础构建新的镜像,再分发给团队成员使用。

 

9. docker stop 容器
停止一个运行中的容器并用docker ps查看

 例子中命令后跟着的是要停止容器id的前几位用于定位唯一容器
 
10. docker rm  容器
删除一个或多个容器
使用docker ps -a 查看所有容器(包括停止的),发现之前stop的容器仍然存在,只是exited了


 
docker rm删除容器,再用docker ps -a 查看,发现确实删除了

 

11.docker rmi 镜像

删除本地一个或多少镜像
注意,如果还有容器正在使用该镜像运行,则不能删除该镜像

 
可以增加-f选型强制删除,但是不推荐,类似于外键约束,可能会造成不一致的问题。正确的做法是先把使用该镜像的容器停止,删除,然后再删除对应镜像

 可以看到 ,同构建时一样,删除镜像时也是逐层删除的
12.docker save > 文件
将指定镜像保存成 tar 归档文件。> 表示输出重定向
 
镜像构建好了(不管是用dockerfile从头构建镜像还是通过修改别人镜像的容器commit成新的镜像),可以用docker save命令导出为归档文件,分发给团队成员使用,使大家可以在完备,一致的环境下开发,测试和部署
例子:
1)将一个镜像导出到tar文件中,可以发给别人使用

 


 
2)删除容器和镜像


 

 
可以看到,现在本地已没有myimg1这个镜像,我们访问其之前映射的端口也不再能访问
3)使用之前save的tar文件还原镜像,参见下面的docker load命令

 

13.docker load<文件
导入之前使用 docker save 命令导出的镜像tar文件到本地,用于还原镜像
<表示输入重定向

 
用恢复的镜像运行一个nginx容器,还是映射到100端口

 
应用恢复

 

附录1:提供一些扩展学习内容,请大家根据我们提供的文档链接和网络自行扩展提高

扩展1:自行查阅 save export load import命令的区别
扩展2:自行在docker hub或网易云(docker仓库,不是云音乐)上注册,将本地镜像上传到远程仓库上
扩展3:自己去pull tomcat,mysql等镜像,并run
扩展4:将一个web应用打包成docker镜像(自己百度,非常多文章)
 

附录2:

使用docker进行实际工作场景描述:
1.专业运维会编写基础镜像的dockerfile文件,save->tar
2.开发人员拿到tar后,通过load-》还原成基础镜像
3. 开发人员完成开发后,编写自己的dockerfile文件,以基础镜像为基础构建自己的镜像
4.运行自己的dockerfile文件(build),构建自己web应用的镜像
5. save自己的镜像-》tar,发给测试人员去还原并测试,发给运维人员去部署


 
以上就是我们的docker实例入门,介绍了docker的基本概念和作用,docker仓库/镜像/容器三大组件,并以nginx应用的一些简单操作为例介绍了docker常用操作场景和命令。限于篇幅分为上下两篇文章
操作过程基本都有截图,大家可结合我们的截图和建议的命令手册自己进行实验,只有自己动了手才能真正理解概念,学会实际使用。
  • 大小: 21.9 KB
  • 大小: 8 KB
  • 大小: 4.2 KB
  • 大小: 21.9 KB
  • 大小: 138.6 KB
  • 大小: 12.1 KB
  • 大小: 9.6 KB
  • 大小: 9 KB
  • 大小: 11 KB
  • 大小: 11.5 KB
  • 大小: 7 KB
  • 大小: 15.7 KB
  • 大小: 10.5 KB
  • 大小: 1.2 KB
  • 大小: 14.3 KB
  • 大小: 18.2 KB
  • 大小: 14.8 KB
  • 大小: 5.6 KB
  • 大小: 73.4 KB
  • 大小: 73.4 KB
分享到:
评论

相关推荐

    docker从入门到精通,详细教程

    docker从入门到精通,详细教程,适用于从零开始学习docker技术的人,里面包含了详细的命令是用及参数的应用实例,通俗易懂,包教包会包分配,详细的volume解释应用和虚拟网络知识与docker-compose的命令应用及参数的...

    Docker入门与实战详解记录

    Docker入门与实战详细笔记,全部命令及实例,详细的记录,方便查阅。优秀的格式,可作为手册供查阅。来自于Docker入门与实战一书的阅读笔记。

    Docker Swarm入门实例详解

    主要介绍了Docker Swarm 入门实例详解的相关内容,小编觉得十分不错,在这里给大家分享下,需要的朋友可以参考。

    docker入门基础教程

    docker超详细基础教程 Docker的介绍 ...创建Redis实例并启动 访问Redis服务 进入容器 ​检查Redis版本 登录Redis 安装Ngnix代理 拉取镜像 创建数据卷 查看目录 启动Nginx服务 访问Nginx服务

    Docker入门与应用实战 完整版PDF

    最后,文章列举了一些Docker的应用实例,包括基于Docker的Web应用部署、CI/CD自动化流程和微服务架构等。通过本文的学习,读者可以快速掌握Docker的基本使用和应用实践技能,为日后的项目开发和运维工作提供有力的...

    从Docker到Kubernetes之技术实战

    从Docker到Kubernetes之技术实战,从Docker到Kubernetes案例,详细笔记。可以让初学者充分认识从Docker到Kubernetes魅力

    docker入门源码、文档.rar

    当下最火的docker技术,分享给大家进行学习,里面包括源码调用实例、以及文档图说明,基础命令等,并且全都是中文的,很详细,入门首选哦~

    动力节点Docker入门到进阶教程学习笔记分享

    2.通过实例全面讲解了Dockerfile指令 3.深度解析了build cache机制、网络通信过程与通信原理。 4.全面且讲解了目前最流行的三种Docker管理平台及CIG监控平台的搭建、配置及使用。 5.深度讲解了docker distribution、...

    docker:Docker入门

    构建Docker Doodles 可以使用原始docker docker build或新的BuildKit应用程序进行docker build 。 夜间构建以及Docker Engine 19.03版本中都有新的... 使用buildx,首先需要创建一个跨平台builder实例,其实例如下:

    Docker Succinctly

    Docker入门介绍,通过实例和场景,介绍Docker的应用。

    云计算-docker-阿里云

    这套 Docker 教程同时讲解了 Docker 的使用以及底层原理,并附带了很多操作实例。 这篇文档是我根据阿里云的官网上的docker速成课整理的文档。可能对于生产环境作用不是很大,但对于初学者来说,是一套不错的 Docker...

    ninjasphere-docker

    忍者圈码头工人 运行 Ninja Sphere 客户端服务的小型、自包含且绝对与真实领域略有不同的副本。...以及运行指向 docker 实例的 Go 驱动程序的便捷包装器: ..../ninjasphere-docker/sphere.sh run-d

    菜鸟入门Docker

    菜鸟入门Docker说明一、什么是Docker(1)虚拟机和Linux容器二、Docker用途三、Docker安装(1)设置仓库(2)安装 Docker Engine-Community(3)验证安装成功四、Docker启动与停止(1)启动docker(2)停止docker(3...

    private-tor-network, 在 Docker 容器中,运行tor网络的独立实例.zip

    private-tor-network, 在 Docker 容器中,运行tor网络的独立实例 网络上的private Tor网络一个独立的private tor网络,完全在 Docker 容器中运行快速入门让tor网络启动和运行的最简单方法是使用 docker stack deploy...

    Docker简单安装与应用入门教程

    本文实例讲述了Docker简单安装与应用。分享给大家供大家参考,具体如下: 作为一个初次接触Docker的人来说,最大的问题是Docker是什么?Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、...

    docker-cups-airprint-hplip:运行带有HPLIP驱动程序的CUPS实例的基于Alpine的Docker映像,以使用不具有AirPrint功能的本地USB打印机作为AirPrint打印机

    docker-cups-airprint-hplip 运行带有HPLIP驱动程序的CUPS实例的基于Alpine的Docker映像,以使用不具有AirPrint功能的本地USB打印机作为AirPrint打印机目录 关于取自tigerj / cups-airprint ,它是quadportnick / ...

    Docker集群的创建与管理实例详解

    在《Docker简单安装与应用入门教程》中编写一个应用程序,并将其转化为服务,在《Docker分布式应用教程》中,使应用程序在生产过程中扩展5倍,并定义应该如何运行。现在将此应用程序部署到集群上,并在多台机器上...

    Docker入门

    docker的整个生命周期有三部分组成:镜像(image)+容器(container)+仓库(repository),容器是由镜像实例化而来,这和面向对象的概念十分相似,可以把镜像看作类,把容器看作类实例化后的对象。也可以说镜像是...

Global site tag (gtag.js) - Google Analytics