`

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入门与应用实战 完整版PDF

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

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

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

    Docker入门与实战详解记录

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

    Docker Swarm入门实例详解

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

    docker入门基础教程

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

    docker入门到实战

    Docker 入门到实战 本资源摘要信息涵盖了 Docker 的基本概念、架构、应用场景、优点、架构组件、与虚拟机的区别等方面的知识点。 Docker 简介 Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache2.0 ...

    Docker入门指南.docx

    Docker 入门指南 Docker 是一种容器技术,能够实现操作系统虚拟化,让您在资源受到隔离的情况下运行多个应用程序。下面是 Docker 的基本概念、架构、组件、安装和使用等相关知识点: 1. Docker 的优势: Docker ...

    从Docker到Kubernetes之技术实战

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

    Docker容器技术入门概述.pdf

    Docker 容器技术入门概述 Docker 容器技术是当前非常流行的一种虚拟化技术,用于实现轻量级的容器虚拟化。它可以在宿主机操作系统中运行多个容器,每个容器都可以独立运行不同的操作系统和应用程序。 Docker 容器...

    Docker容器技术入门概述.docx

    Docker 容器技术入门概述 Docker 是什么? ---------------- Docker 是一种容器技术,它可以实现操作系统虚拟化,让您在资源受到隔离的进程中运行应用程序及其依赖关系。 Docker 容器技术可以让您轻松打包应用程序...

    docker入门源码、文档.rar

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

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

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

    使用Spring Cloud和Docker构建微服务

    这种架构模式下,服务发现是中心组件,它允许服务在运行时互相查找和通信,这对于构建一个灵活、可扩展的系统至关重要。 当我们深入微服务架构时,智能路由也是不能忽视的组成部分。智能路由能够帮助系统根据请求的...

    docker的概要介绍与分析

    Docker是一个开源的应用容器引擎,它利用操作系统级别的虚拟化技术来创建和管理轻量级的、可移植的软件容器。...书籍:市场上也有关于Docker的书籍,如《Docker实战》、《Docker技术入门与实战》等,这

    docker:Docker入门

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

    云原生-docker操作文档

    "云原生-docker操作文档" 这篇操作文档主要介绍了云原生和Docker相关的知识点,涵盖了Docker的历史、基础概念、核心原理、应用...课程内容包括Docker快速入门、Docker核心原理、Docker高级应用、Docker的运维管理等。

    Docker Succinctly

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

    讲义-使用docker搭建redis集群.pdf

    通过Docker可以轻松地部署Redis实例,并通过Docker Compose等工具管理和运行多个容器。 对于Redis集群,它允许多个Redis实例一起工作,从而提高数据的可用性和系统处理大量数据的能力。搭建Redis集群前,需要为每个...

Global site tag (gtag.js) - Google Analytics