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

公司怎么建立网站上海人才教育网官网

公司怎么建立网站,上海人才教育网官网,做ppt常用的网站有哪些,泰安企业建站公司哪里找常见的镜像在DockerHub能找到,但是我们自己写项目得自己构造镜像 1 镜像结构 作用:提高复用性,当应用需要更新时,不再是整个系统重装进行更新 ,而是对需要更新的部分进行更新,其他地方不动——>这就是分…

常见的镜像在DockerHub能找到,但是我们自己写项目得自己构造镜像

1 镜像结构

在这里插入图片描述
作用:提高复用性,当应用需要更新时,不再是整个系统重装进行更新 ,而是对需要更新的部分进行更新,其他地方不动——>这就是分层的好处 每做一次新的操作会产生新的一层

简单来说,镜像就是在系统函数库、运行环境的基础上添加应用程序文件、配置文件,然后合并后+编写好的启动脚本(镜像运行的入口)一起形成的文件

所以说,构建镜像,就是实现上述打包过程

在这里插入图片描述

2 什么是Dockerfile

构建自定义镜像,如果一个个文件去拷贝打包,会非常麻烦;

我们只需要告诉Docker,我们镜像的组成结构,需要哪些BaseImage、拷贝哪些依赖,需要哪些启动脚本,那么Docker将会帮助构建镜像;

而DockerFile:是一个文本文件,里面的指令描述了要什么样的操作来构建镜像;

在这里插入图片描述

更新详细语法说明,请参考官网文档:Dockerfile reference | Docker Documentation

举例:构建Java项目

在这里插入图片描述

  • 步骤1:.首先新建一个空文件夹docker-demo,然后将文件拷贝到里面
    在这里插入图片描述
  • 步骤2:.设置DockerFile中的内容(利用DockerFile指令设置镜像的每一层内容:就是函数库、依赖、环境啥的):
# 指定基础镜像
FROM ubuntu:16.04
# 配置环境变量,JDK的安装目录
ENV JAVA_DIR=/usr/local# 拷贝jdk和java项目的包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./docker-demo.jar /tmp/docker-demo.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/docker-demo.jar
  • 步骤3:.然后我们在当前目录下 执行docker build命令:创建镜像给到岛屿(本地)

  • 步骤4:进入docker-demo

    将准备好的docker-demo上传到虚拟机任意目录,然后进入docker-demo目录下

  • 步骤5:运行命令:

    docker build -t javaweb:1.0 .
    

最后访问 http://192.168.XX.XXX:8090/hello/count,其中的ip改成你的虚拟机ip

在这里插入图片描述

3 DockerCompose是什么以及其作用

1.DockerCompose是一个文本文件,里面通过指令定义了每个容器如何运行的

在这里插入图片描述

2.DockerCompose可以快速部署多个容器,而无需一个个docker run

在这里插入图片描述

不用端口是因为集群,自己访问就行了,所以端口不需要暴露;

version: "3.8"
services:mysql:image: mysql:5.7.25environment:MYSQL_ROOT_PASSWORD: 123 volumes:- "/tmp/mysql/data:/var/lib/mysql"-  "/tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf"web:build: .ports:- "8090:8090"

上面的Compose文件就描述一个项目,其中包含两个容器:

  • mysql:一个基于mysql:5.7.25镜像构建的容器,并且挂载了两个目录
  • web:一个基于docker build临时构建的镜像容器,映射端口时8090
    下面这个web:build : . xxxx类似于:1.用来用户主动自定义build镜像给到岛屿(本地),后面的.代表当前文件目录下build镜像 .然后后面的ports相当于docker run了生成容器

DockerCompose的详细语法参考官网:DockerCompose的详细语法

其实DockerCompose文件可以看做是将多个docker run命令写到一个文件,只是语法稍有差异

4 安装DockerCompose

  • 1.通过命令下载,或者通过资料上传到/usr/lcoal/bin目录也行
# 安装
curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  • 2.修改权限
# 修改权限
chmod +x /usr/local/bin/docker-compose
  • 3.Base自动补全命令
# 补全命令
curl -L https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
  • 4.若出现错误
echo "199.232.88.XXX raw.githubusercontent.com" >> /etc/hosts

5 Compose部署微服务demo

Compose部署微服务demo

在这里插入图片描述
这里我们再复习一下DockerFIle:

一种构建镜像最常用的方式,包括:基础镜像信息+层层叠加,维护更新(容器启动指令+镜像操作指令…)

Docker从上到下顺序执行DockerFIle指令,为了指定基本映象,第一条指令时FROM

每条指令都会创建一个新的镜像层,并对镜像进行提交

实现步骤

1.cloud项目需要打成jar包后放到各自服务的文件夹下,同时还需要+DockerFile文件,分别代表:

java8,拷贝的app.jar文件,启动脚本
在这里插入图片描述

内容如下:

FROM java:8-alpine
COPY ./app.jar /tmp/app.jar
ENTRYPOINT java -jar /tmp/app.jar

2.每个服务的DockerFile准备好后(也就是镜像构建好),我们还需要DockerCompose:——>目的是将多个镜像全部启动

version: "3.2"services:nacos:image: nacos/nacos-serverenvironment:MODE: standaloneports:- "8848:8848"mysql:image: mysql:5.7.25environment:MYSQL_ROOT_PASSWORD: 123volumes:- "$PWD/mysql/data:/var/lib/mysql"- "$PWD/mysql/conf:/etc/mysql/conf.d/"userservice:build: ./user-serviceorderservice:build: ./order-servicegateway:build: ./gatewayports:- "10010:10010"

可以看到,其中包含5个service服务:

  • nacos:作为注册中心和配置中心
    • image: nacos/nacos-server: 基于nacos/nacos-server镜像构建
    • environment:环境变量
      • MODE: standalone:单点模式启动
    • ports:端口映射,这里暴露了8848端口
  • mysql:数据库
    • image: mysql:5.7.25:镜像版本是mysql:5.7.25
    • environment:环境变量
      • MYSQL_ROOT_PASSWORD: 123:设置数据库root账户的密码为123
    • volumes:数据卷挂载,这里挂载了mysql的data、conf目录,其中有我提前准备好的数据
  • userserviceorderservicegateway:都是基于Dockerfile临时构建的

查看mysql目录,可以看到其中已经准备好了cloud_order、cloud_user表:
在这里插入图片描述

需要注意的是:

因为微服务将来要部署为docker容器,而容器之间互联不是通过IP地址,而是通过容器名。这里我们将order-service、user-service、gateway服务的mysql、nacos地址都修改为基于容器名的访问。

如下所示:

spring:datasource:url: jdbc:mysql://mysql:3306/cloud_order?useSSL=falseusername: rootpassword: 123456driver-class-name: com.mysql.jdbc.Driverapplication:name: orderservicecloud:nacos:server-addr: nacos:8848 # nacos服务地址

在这里插入图片描述
在这里插入图片描述

3.部署

最后,我们需要将文件整个cloud-demo文件夹上传到虚拟机中,理由DockerCompose部署。

上传到任意目录:
在这里插入图片描述

部署:

进入cloud-demo目录,然后运行下面的命令:

docker-compose up -d
http://www.yayakq.cn/news/612433/

相关文章:

  • 使用阿里云建网站广告型网站怎么做的
  • 做网站绍兴什么网站可以兼职做效果图
  • 那个网站做二手设备比较好网站内容建设的原则
  • 移动互联网开发招人seo店铺描述例子
  • 山西网站制作方案建设网站要买服务器
  • 网站风格配置怎么做三亚网站制作
  • 学校网站模板代码观澜小学 网站建设
  • 郑州网站优化外包顾问wordpress 更新feed
  • 合肥门户网站有哪些提供常州网站优化
  • 自己做网站给自己淘宝引流找做网站公司需要注意什么
  • 网站建设方案报价单为网站做seo需要什么
  • 门户网站和社交网络的区别手机能建设网站忙
  • 上海网站优化案例wordpress功能小工具增加按钮
  • 网站策划书内容合肥宣传片制作公司六维时空
  • 汕头网站建设sagevis企业所得税征收方式
  • 做网站推销的如何谈客户com后缀的网站
  • 易企互联网站建设莱芜金点子信息港房产
  • 动漫新闻资讯站开发商
  • 网站规划建设与管理维护大学论文嵌入式转行到网站开发
  • 网站建设运行上海房产交易中心官网
  • 河北常见网站建设价格做音乐网站的目的和意义
  • 梅州市住房和城乡建设局官方网站沭阳做网站公司排名前十
  • 北京京西建设集团网站英雄联盟网页怎么制作
  • 网站建设毕业设计刻光盘衡水武邑县建设局网站
  • 响应式网站国内外现状购物车网站设计
  • 网站用户注册增加办法网站可访问性
  • 怎么做电影流量网站吗县检察院门户网站建设情况
  • 什么网站可以接室内设计做南京电商网站开发公司
  • 如何发布网站到域名杭州外贸网站多少钱
  • 网站建设技术网站文字变形logo设计生成器