微服务架构 ------ Dockerfile定制镜像
Docker容器不仅仅是运行原生的容器,而是把我们的具体的项目能够布置到容器上面去,这就是Docker定制镜像需要做的事情。 Docker容器 = new Docker镜像 镜像相当于类,容器相当于对象,所以修改了类之后,生成的容器也是根据需求生成的。
下面根据Dockerfile创建最简单的定制化镜像: 启动tomcat容器主页显示 hello tomcat
1.Dockerfile定制镜像
- 首先找到一个位置来放置我们的项目代码,一般我们的程序都会放在 /usr/local/ 下
- cd /usr/local/ mkdir docker cd docker mkdir myproject cd myproject
- touch index.jsp vi index.jsp hello tomcat 保存
- touch Dockerfile #创建Dockerfile文件,一般定制化的镜像构建时的配置文件默认名称是 Dockerfile,下面是文件内容
From tomcat:latest
COPY index.jsp /usr/local/tomcat/webapps/ROOT
- From tomcat:latest #从tomcat镜像继承过来,tomcat是最新版本,同样也可以用tomcat的版本号替换latest Copy index.jsp /usr/local/tomcat/webapps/ROOT #拷贝文件index.jsp到tomcat的ROOT目录下 保存
- docker build -t 镜像名字 . 构建镜像 看清楚,最后还有一个点。 最后那个点的含义是表示当前目录以及容器的上下文环境。镜像的构建是不是在宿主机里面构建的 而是在Docker中构建的,构建的过程是把当前所在的目录以及目录下的所有文件拷贝到Docker,所以在Dockerfile中使用 ./ 想要跳回上级目录是行不通的,因为构建之后的环境已经变了。
- 使用docker images 查看当前docker的镜象信息,myshop是我创建的镜像,镜像的大小与tomcat一样,因为镜像本身就是在tomcat的基础上创建的。
- docker run -p 8080:8080 --name myshop -d myshop myshop镜像构建myshop容器 对外网映射到端口8080 并且以守护线程的方式运行 --name 容器的名字 -d myshop 以守护线程运行myshop镜像
- docker ps 查看当前运行的docker容器 docker container rm 容器id 删除容器 docker container ls -a 显示所有的运行过的容器,运行容器的名称不能与历史容器的名称相同。可以先删除历史容器记录,再运行
- 运行结果
2.Dockerfile指令
- COPY 复制文件到一个目录 格式:COPY 文件名或者带路径的文件名 目标路径
- ADD 和COPY指令基本类似,只是又添加了一些功能,命令格式一致 添加功能:拷贝完成之后,如果是压缩文件自动执行文件解析当目标文件目录
- CMD 执行脚本命令 CMD ./startup.sh 只允许用一次 多个CMD只会执行最后一个
- ENTRYPOINT 也是执行脚本命令与CMD基本类似,也是只允许用一次 启动多个命令 可以写一个脚本集,把所有的命令都添加进去 ,再用ENTRYPOINT启动
- ENV 环境变量 k=v
- EXPOSE 端口暴露,
- WORKDIR 类似于cd 进入目录,指定容器的初始目录
3.与docker容器的交互
docker exec -it 容器名 /bin/bash 使用shell脚本交互
微服务架构 ------ Dockerfile定制镜像的更多相关文章
- 庐山真面目之八微服务架构 NetCore 基于 Dockerfile 文件部署
庐山真面目之八微服务架构 NetCore 基于 Dockerfile 文件部署 一.简介 从今天开始,不出意外的话,以后所写的文章中所介绍项目的部署环境都应该会迁移到Linux环境上,而且是 ...
- 庐山真面目之九微服务架构 NetCore 基于 Docker 基础镜像和挂载文件部署
庐山真面目之九微服务架构 NetCore 基于 Docker 基础镜像和挂载文件部署 一.简介 我们在上一篇文章<庐山真面目之八微服务架构 NetCore 基于 Dockerfile ...
- 基于 Docker 的微服务架构实践
本文来自作者 未闻 在 GitChat 分享的{基于 Docker 的微服务架构实践} 前言 基于 Docker 的容器技术是在2015年的时候开始接触的,两年多的时间,作为一名 Docker 的 D ...
- Docker Dockerfile 定制镜像(转)
转自: https://yeasy.gitbooks.io/docker_practice/ 及 https://blog.csdn.net/wo18237095579/article/details ...
- Dockerfile定制镜像
一.Dockerfile是什么? 镜像定制实质就是定制每一层所添加的配置.文件. Dockerfile就是一个脚本来构建和定制镜像,把每一层的修改.安装.构建.操作都写入脚本.以此来解决体积.镜像构建 ...
- Docker 学习笔记(二):Dockerfile 定制镜像
镜像的定制实际上就是定制每一层所添加的配置.文件. 如果我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,用这个脚本来构建.定制镜像,那么之前提及的无法重复的问题.镜像构建透明性的问题.体积 ...
- Docker Dockerfile 定制镜像
使用 Dockerfile 定制镜像 镜像的定制实际上就是定制每一层所添加的配置.文件.如果我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,用这个脚本来构建.定制镜像,那么无法重复的问题 ...
- 利用 Dockerfile 定制镜像
镜像的定制实际上就是定制每一层所添加的配置.文件. 如果我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,用这个脚本来构建.定制镜像, 那么之前提及的无法重复的问题.镜像构建透明性的问题.体 ...
- 5.Dockerfile 定制镜像
概述 Dockerfile 是一个文本文件,其内包含了一条条的 指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建. 以之前的 Nginx 镜像为例,这 ...
随机推荐
- lf 前后端分离 (2) 课程数据获取,Serializer的返回
一.关于课程数据的返回 在进行前后端分离时,会通过def 进行前后端传值, 本质上遵循rest 网址规范 增删改查查 get,post,put,del get(\d+) 1.在从数据库获取数据后,进 ...
- css 盒子下
1.padding 有小属性 padding-top: 30px; padding-right: 30px; padding-bottom: 30px; padding-left: 30px; 小属性 ...
- 在springboot或者ssm框架或者类似的框架中VO、DTO、DO、PO的概念、区别和用处
该文章主要讨论我们开发过程当中会经常用到的对象:VO.DTO.DO.PO;由于项目和每个人的命名习惯,这里只是对这些概念进行阐述.概念: VO(View Object):视图对象,用于展示层,它的作用 ...
- Oracle告Google输了
Oracle告Google输了 boxi • 2016-05-27 • 大公司 Google表示,陪审团的认定代表了Android生态体系.Java开发社区以及依靠开放免费编程语言开发创新消费者产品的 ...
- The Preliminary Contest for ICPC Asia Shanghai 2019 C. Triple
[传送门] FFT第三题! 其实就是要求有多少三元组满足两短边之和大于等于第三边. 考虑容斥,就是枚举最长边,另外两个数组里有多少对边之和比它小,然后就是 $n^3$ 减去这个答案. 当 $n \le ...
- [LeetCode] 900. RLE Iterator RLE迭代器
Write an iterator that iterates through a run-length encoded sequence. The iterator is initialized b ...
- [LeetCode] 892. Surface Area of 3D Shapes 三维物体的表面积
On a N * N grid, we place some 1 * 1 * 1 cubes. Each value v = grid[i][j] represents a tower of v cu ...
- 使用logstash同步mysql数据库信息到ElasticSearch
本文介绍如何使用logstash同步mysql数据库信息到ElasticSearch. 1.准备工作 1.1 安装JDK 网上文章比较多,可以参考:https://www.dalaoyang.cn/a ...
- Redis数据结构及常用命令(草稿)
通用命令 数据类型 string 字符 list 列表 set 集合 zset 有序集合 hash 散列(字典中的字典) bitmap 位图 hyperloglog
- 浅析容斥和DP综合运用
浅析容斥和DP综合运用 前言 众所周知在数数题中有一种很重要的计数方法--容斥.但是容斥有一个很大的缺陷:枚举子集的复杂度过高.所以对于数据规模较大的情况会很乏力,那么我们就只能引入容斥DP. 复习一 ...