当前位置: 首页 > article >正文

高可用篇_A Docker容器化技术_IV Dockerfile的基本概念和应用

原创作者:田超凡(程序员田宝宝)

版权所有,引用请注明原作者,严禁复制转载

DockerFile 解析

一个镜像文件到底是如何创建?

  1. dockerfile 描述出镜像文件需要的一些依赖配置和环境变量 执行命令
  2. 将我们dockerfile 文件打包成一个镜像文件
  3. 直接使用我们的容器运行到该镜像文件。

步骤:

  1. 需要手动编写一个dockerfile文件
  2. 将该dockerfile  docker build 自定义成一个镜像文件
  3. docker run 运行容器

Centos镜像文件

docker run -it centos

DockerFile编写规范

A.#描述注释

B.指令必须要大写,后面至少需要带至少一个参数;

C.指令是按照从上到下,顺序执行;

DockerFile指令

  1. FROM 指定父镜像:  基于哪个镜像image构建  指定基础镜像,必须为第一个命令
  2. MAINTAINER :维护者
  3. RUN: 容器创建的时候执行一段命令   构建镜像时执行的命令
  4. ADD: 将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget
  5. COPY:功能类似ADD,但是是不会自动解压文件,也不能访问网络资源
  6. CMD:构建容器后调用,也就是在容器启动时才进行调用。 .sh执行文件
  7. ENV: 设置环境变量
  8. EXPOSE: 指定于外界交互的端口
  9. VOLUME  用于指定持久化目录
  10. WORKDIR 设置进入容器时的路径 默认访问的目录

Tomcat-----jdk环境

进入tomcat 容器----/data

redis容器/data

/

DockerFile案例

Base镜像(scratch) docker hub中的镜像都是通过base镜像中安装和配置需要的软件构建的。

构建自己centos镜像

docker run -it centos

  1. 需求定制修改centos根目录;
  2. 实现支持vim插件;

yum -y install vim

  1. 需要自己制作一个dockerfile文件
  2. 继承docker hub中的centos
  3. 在docker hubcentos 上加入以下两个功能

A.进入容器中 默认访问目录/usr

B.实现支持vim插件

需要将该dockerfile文件打包成一个镜像文件 交给我们容器执行

定制CentOS镜像

FROM  centos

MAINTAINER tcf-tcf

ENV  MYPATH /usr

WORKDIR $MYPATH

RUN yum -y install vim

EXPOSE 80

CMD /bin/bash

Dockerfile→使用docker 将该Dockerfile实现打包成镜像文件→

容器运行该镜像文件。

docker build---将该Dockerfile实现打包成镜像文件

将该dockerfile文件上传到linux服务器中

使用docker build -f Dockerfile -t mycs:1 .

Dockerfile ------配置文件

mycs----打包镜像文件名称

1 tag 版本号码

docker run -it mycs:1

将springboot项目打包部署
  1. 基于docker原生方式 部署我们的springboot项目

Dockerfile

2.dockercompose----- 容器编排技术

springboot项目----变成镜像文件---容器运行

  1. 将我们springboot项目---打成一个jar包

2.定义dockerfile文件-----描述出springboot项目 配置依赖和环境变量

JDK

注意:springboot内置嵌入我们的tomcat服务器 所以不需要额外的tomcat容器来

运行。

原生方式运行我们的jar包

Java- jar指令

1需要先将我们外部jar,拷贝到容器中

2容器运行成功执行java -jar

3将该dockerfile文件打包成镜像文件-

步骤:

  1. 将springboot项目打包;
  2. 制作dockerfile文件;
  1. 继承我们的jdk环境
  2. 将我们本地的jar包拷贝到容器中
  3. Java -jar

  1. 将dockerfile文件打包成镜像文件;
  2. 运行该镜像文件即可;

将springboot项目打包

mvn clean package

制作dockerfile文件
# 基础镜像使用java

  FROM java:8

  # 作者

  MAINTAINER www.tcf.com

  # VOLUME 指定了临时文件目录为/tmp# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp

  VOLUME /tmp

  # jar包添加到容器中并更名为tcf.jar

  ADD tcf-thymeleaf-1.0-SNAPSHOT.jar tcf.jar

  # 运行jarRUN bash -c 'touch /tcf.jar'

  ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/tcf.jar"]

  #暴露8080端口

  EXPOSE 8080

打包成镜像文件

docker build -f Dockerfile -t tcf-member:1 .

docker build -f Dockerfile -t tcf-member:1 .

启动容器

docker run -p 8070:8080   tcf-member:1

本文部分素材转载自蚂蚁课堂


http://www.kler.cn/a/273212.html

相关文章:

  • SSH详解
  • Docker-安装
  • MySQL之JDBC入门详解
  • 每周算法比赛
  • 深入理解 Spring Boot 中的 @PathVariable 注解
  • 低代码用户中心:简化开发,提升效率的新时代
  • Vue通用后台管理项目实战-1
  • Day17 深入类加载机制
  • 杭州市医疗器械经营监督管理规定(景区分局)
  • 罗马数字转整数-力扣通过自己编译器编译
  • 计算机网络之网络层概念整理(上)
  • 算法笔记p328_并查集
  • LeetCode350:两个数组的交集Ⅱ
  • 腾讯云优惠券领取指南:让你省钱又省心
  • 文件系统I/O FATFS RW 源码分析
  • win修改图标自定义QQ桌面图标
  • 粤嵌6818开发板通过MobaXterm使用SSH连接开发板
  • 前端入职配置新电脑!!!
  • 力扣思路题:最长特殊序列1
  • kingbase 服务器配置(参数修改)
  • 关于学习的一点粗浅见解
  • Linux TCP参数——tcp_adv_win_scale
  • luceda ipkiss教程 63:器件端口延伸ExtendPorts
  • C++——字符串、读写文件、结构体、枚举
  • 【人工智能】英文学习材料03(每日一句)
  • 【字符串算法题】541. 反转字符串 II