微服务框架 SpringCloud微服务架构 11 自定义镜像 11.2 Dockerfile
创始人
2024-03-17 19:12:23

微服务框架

【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】

SpringCloud微服务架构

文章目录

      • 微服务框架
      • SpringCloud微服务架构
      • 11 自定义镜像
        • 11.2 Dockerfile
          • 11.2.1 什么是Dcokerfile
          • 11.2.2 直接开干
          • 11.2.3 直接使用基础镜像,加快构建
          • 11.2.4 总结

11 自定义镜像

11.2 Dockerfile

11.2.1 什么是Dcokerfile

Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer。

指令说明示例
FROM指定基础镜像FROM centos:6
ENV设置环境变量,可在后面指令使用ENV key value
COPY拷贝本地文件到镜像的指定目录COPY ./mysql-5.7.rpm /tmp
RUN执行Linux的shell命令,一般是安装过程的命令RUN yum install gcc
EXPOSE指定容器运行时监听的端口,是给镜像使用者看的EXPOSE 8080
ENTRYPOINT镜像中应用的启动命令,容器运行时调用ENTRYPOINT java -jar xx.jar

Docker 官网文档:https://docs.docker.com/engine/reference/builder/

在这里插入图片描述

11.2.2 直接开干

基于Ubuntu镜像构建一个新镜像,运行一个java项目

步骤1:新建一个空文件夹docker-demo

mkdir docker-demo

在这里插入图片描述

在这里插入图片描述

步骤2:拷贝课前资料中的docker-demo.jar文件到docker-demo这个目录

在这里插入图片描述

直接拽进来

在这里插入图片描述

OK,这样三个都上来了

步骤3:拷贝课前资料中的jdk8.tar.gz文件到docker-demo这个目录

步骤4:拷贝课前资料提供的Dockerfile到docker-demo这个目录

先看看Dockerfile

在这里插入图片描述

# 指定基础镜像
FROM ubuntu:16.04
# 配置环境变量,JDK的安装目录
ENV JAVA_DIR=/usr/local# 拷贝jdk和java项目的包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./docker-demo.jar /tmp/app.jar# 安装JDK
RUN cd $JAVA_DIR \&& tar -xf ./jdk8.tar.gz \&& mv ./jdk1.8.0_144 ./java8# 配置环境变量
ENV JAVA_HOME=$JAVA_DIR/java8
ENV PATH=$PATH:$JAVA_HOME/bin# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar

步骤5:进入docker-demo

步骤6:运行构建命令:

在这里插入图片描述

在这里插入图片描述

空格之后有个点儿,一定记得,它代表Dockerfile 所在的目录,直接回车运行

在这里插入图片描述

可以看到,它在逐步执行Dockerfile 中的指令

在这里插入图片描述

OK,构建完成了,查看镜像

在这里插入图片描述

创建容器把它跑起来

docker run --name web -p 8090:8090 -d javaweb:1.0

在这里插入图片描述

开个端口

在这里插入图片描述

OK,本地访问测试

在这里插入图片描述

OK, 没毛病

每刷新一次,加一次

在这里插入图片描述

11.2.3 直接使用基础镜像,加快构建

基于java:8-alpine镜像,将一个Java项目构建为镜像

实现思路如下:

①新建一个空的目录,然后在目录中新建一个文件,命名为Dockerfile

②拷贝课前资料提供的docker-demo.jar到这个目录中

③编写Dockerfile文件:

  • a)基于java:8-alpine作为基础镜像
  • b)将app.jar拷贝到镜像中
  • c)暴露端口
  • d)编写入口ENTRYPOINT

④使用docker build命令构建镜像

⑤使用docker run创建容器并运行

修改一下Dockerfile

# 指定基础镜像
FROM java:8-alpineCOPY ./docker-demo.jar /tmp/app.jar# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar

覆盖服务器中的Dcokerfile

在这里插入图片描述

在这里插入图片描述

OK,覆盖成功

再次构建一个新的镜像

docker build -t javaweb:2.0 .

在这里插入图片描述

查看镜像

在这里插入图片描述

我giao ,注意大小

把之前那个干掉,把这个2.0 创建个容器跑起来

在这里插入图片描述

docker run --name web2.0 -p 8090:8090 -d javaweb:2.0

在这里插入图片描述

直接访问测试

在这里插入图片描述

没毛病!牛逼!【虽然笔者早知道了】

11.2.4 总结
  1. Dockerfile的本质是一个文件,通过指令描述镜像的构建过程

  2. Dockerfile的第一行必须是FROM,从一个基础镜像来构建

  3. 基础镜像可以是基本操作系统,如Ubuntu。也可以是其他人制作好的镜像,例如:java:8-alpine

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...