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

网站开发实用技术电子版免费网站流量

网站开发实用技术电子版,免费网站流量,怎么申请公司网址,2016年做网站能赚钱吗目录 一:Dockerfile自定义镜像 1. 镜像结构 2. Dockerfile语法 3. 构建Java项目 二: Docker-Compose 1. 初识DockerCompose 2. 部署微服务集群 前些天突然发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,…

目录

一:Dockerfile自定义镜像

1. 镜像结构

2. Dockerfile语法

3. 构建Java项目

二: Docker-Compose

1. 初识DockerCompose

2. 部署微服务集群


前些天突然发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,感兴趣的同学可以进行学习人工智能学习

一:Dockerfile自定义镜像

前面我们怎么拉取镜像,怎么去创建运行容器;但是都是基于DockerHub官方制作的镜像。接下来就学习一下怎么自己制作镜像!

1. 镜像结构

镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成!

镜像结构:镜像是分层结构,每一层称为一个Layer

基础镜像(BaseImage):一定是某个镜像依赖的系统函数库,这一层称为基础镜像。

入口(Entrypoint):等所有的安装步骤完成,就需要暴露一个端口出去,用来启动使用。

层(Layer):在基础层的基础上给应用配置环境变量,下载安装包,依赖等,每一个操作都是新的一层。

2. Dockerfile语法

什么是Dockerfile

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

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

3. 构建Java项目

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

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

mkdir docker-demo

步骤2:拷贝资料中的docker-demo.jar(项目)、jdk8.tar.gz(Java运行环境)、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
# 进入目录,解压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#-------------------以上配置基本上都是安装JDK
# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar

步骤3:运行命令,构建镜像

-t表示tag版本号,点“.”表示当前目录,当前Dockerfile文件所在的目录!

docker build -t javaweb:1.0 . #当前就在Dockerfile所在的目录,所以使用点

构建完成后查看镜像docker images

运行容器

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

浏览器进行访问

http://192.168.2.129:8090/hello/count

成功构建并部署成功

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

上面的过程看起来很繁琐,但是大部分的操作都是安装JDK而已;所以可以基于java:8-alpine镜像来构建Java项目项目,这个镜像默认已经安装了JDK。

Dockerfile文件

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

再次构建

docker build -t javaweb:2.0 . 

二: DockerCompose

1. 初识DockerCompose

什么是DockerCompose

Docker Compose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器!

Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。

version: "3.8" # 版本
services: #---------------------第一种方式mysql: # 服务名称,相当于--nameimage: mysql:5.7.25 # 镜像名称environment: # 配置密码,相当于 -e ;对于端口不需要暴露,在集群内部使用,所以不需要配MYSQL_ROOT_PASSWORD: 123 volumes: # 数据卷配置,-d默认就是- "/tmp/mysql/data:/var/lib/mysql"-  "/tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf"#---------------------第二种方式web: # 名称webbuild: . # 点表示在当前目录构建ports: # 构建完以后直接启动容器- "8090:8090"# -------------原来的方式
#---------------------第一种方式
# 容器的启动
docker run \--name mysql \-p 3306:3306 \-e MYSQL_ROOT_PASSWORD=123456 \ # 设置密码-v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \ # 挂载配置文件-v /tmp/mysql/data:/var/lib/mysql \ #挂载数据目录-d  mysql:5.7.25 
#---------------------第二种方式
# 构建镜像
docker build -t web:1.0
# 容器的启动‘
docker run --name web -p 8080:80 -d web:1.0

DockerCompose的详细语法参考官网:Overview | Docker Docs

安装DockerCompose

第一步:Linux下需要通过命令下载

# 安装
curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

 当然如果有现成的docker-compose文件直接上传到/usr/local/bin/目录也可以

第二步:修改文件的权限

# 修改权限,增加可执行权限
chmod +x /usr/local/bin/docker-compose

补充:Base自动补全命令,以后编写docker-compose命令会有提示 

# 补全命令
curl -L https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

如果上述出现错误,需要修改自己的hosts文件:

# 上述出现错误可能是域名识别不了raw.githubusercontent.com
echo "185.199.108.133 raw.githubusercontent.com" >> /etc/hosts

2. 部署微服务集群

将之前学习的cloud-demo微服务集群利用DockerCompose部署到服务器上

第一步:对于cloud-demo需要部署网关gateway、order-service、user-service、nacos、mysql

 第二步:在gateway、order-service、user-service编写Dockerfile

FROM java:8-alpine
COPY ./app.jar /tmp/app.jar # 这个app.jar就是我们需要打的jar包
ENTRYPOINT java -jar /tmp/app.jar

第三步:编写docker-compose(每个服务启动)

version: "3.2" # 版本services: # 服务nacos: # ---------------第一个服务nacosimage: nacos/nacos-server # nacos的镜像environment: # 环境,相当于-m单击运行的配置MODE: standaloneports: # 端口- "8848:8848"mysql: # ---------第二个服务mysqlimage: mysql:5.7.25 # 镜像名称environment:MYSQL_ROOT_PASSWORD: 123 # 密码volumes: # 数据卷挂载- "$PWD/mysql/data:/var/lib/mysql" # $PWD得到当前的目录- "$PWD/mysql/conf:/etc/mysql/conf.d/"user-service: # ---------第三个服务user-servicebuild: ./user-serviceorder-service: # ---------第四个服务order-servicebuild: ./order-servicegateway: # ---------第五个服务gateway,网关暴露了接口build: ./gatewayports:- "10010:10010"

第四步:修改自己的cloud-demo项目(gateway,order-service,user-service),将数据库、nacos地址都命名为docker-compose中的服务名------------》localhost改为对应的服务名,使用Docker-compose部署,所有服务之间都可以用服务名进行访问

例如:以下这种情况,localhost改为服务名称nacos

第五步:使用maven打包工具,将项目中的每个微服务(gateway,order-service,user-service)都打包为app.jar

   <build><finalName>app</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

对cloud-demo项目,利用生命周期,先clean,然后在打包package;将打包好的app.jar拷贝到cloud-demo中的每一个对应的子目录中

整体目录

每一个服务的目录结构

第六步:将cloud-demo上传至虚拟机,进入cloud-demo目录

docker-compose up -d  # up参数表示创建并执行容器,-d后台运行

docker ps查看创建的容器

注:如果你的网速够快一下子就把镜像构建出来,在启动时查看docker-compose logs -f查看日志会发现有的服务启动有问题,这是因为nacos还没有完全启动的原因

# 建议重启一下除nacos的其它服务
docker-compose restart order-service gateway user-service

打开浏览器去访问http://192.168.2.129:10010/user/2?authorization=admin能正常访问,表示部署成功!


文章转载自:
http://frothily.jpkk.cn
http://marrowbone.jpkk.cn
http://khanate.jpkk.cn
http://chantage.jpkk.cn
http://eent.jpkk.cn
http://impatient.jpkk.cn
http://grandniece.jpkk.cn
http://tuxedo.jpkk.cn
http://notandum.jpkk.cn
http://fancy.jpkk.cn
http://impenetrably.jpkk.cn
http://cartogram.jpkk.cn
http://interoperability.jpkk.cn
http://possessor.jpkk.cn
http://lupulone.jpkk.cn
http://wolver.jpkk.cn
http://levee.jpkk.cn
http://eradiate.jpkk.cn
http://despot.jpkk.cn
http://archeological.jpkk.cn
http://ipecacuanha.jpkk.cn
http://wastebasket.jpkk.cn
http://to.jpkk.cn
http://disequilibrium.jpkk.cn
http://gaul.jpkk.cn
http://elapse.jpkk.cn
http://stalingrad.jpkk.cn
http://shakeress.jpkk.cn
http://spanning.jpkk.cn
http://audiometrist.jpkk.cn
http://glad.jpkk.cn
http://fix.jpkk.cn
http://baryonic.jpkk.cn
http://benzophenone.jpkk.cn
http://laotian.jpkk.cn
http://unstructured.jpkk.cn
http://melodia.jpkk.cn
http://discursiveness.jpkk.cn
http://casino.jpkk.cn
http://hawash.jpkk.cn
http://grovy.jpkk.cn
http://tarpon.jpkk.cn
http://abase.jpkk.cn
http://alienable.jpkk.cn
http://calligraphic.jpkk.cn
http://intertropical.jpkk.cn
http://leptocephalus.jpkk.cn
http://tribal.jpkk.cn
http://emaciate.jpkk.cn
http://ladyfinger.jpkk.cn
http://snakelet.jpkk.cn
http://rheophil.jpkk.cn
http://preclude.jpkk.cn
http://gerlachovka.jpkk.cn
http://segue.jpkk.cn
http://blowhard.jpkk.cn
http://subjectivity.jpkk.cn
http://jealousy.jpkk.cn
http://angelet.jpkk.cn
http://zincate.jpkk.cn
http://megalomania.jpkk.cn
http://fibular.jpkk.cn
http://colacobiosis.jpkk.cn
http://luluai.jpkk.cn
http://canonicate.jpkk.cn
http://mds.jpkk.cn
http://aulic.jpkk.cn
http://receptivity.jpkk.cn
http://polypragmatic.jpkk.cn
http://countenance.jpkk.cn
http://punchboard.jpkk.cn
http://polychromasia.jpkk.cn
http://vasectomy.jpkk.cn
http://castalie.jpkk.cn
http://rattlebrain.jpkk.cn
http://lineament.jpkk.cn
http://whichever.jpkk.cn
http://schnaps.jpkk.cn
http://jewelweed.jpkk.cn
http://mickle.jpkk.cn
http://rabi.jpkk.cn
http://pipsissewa.jpkk.cn
http://ideologize.jpkk.cn
http://creatinine.jpkk.cn
http://scruffy.jpkk.cn
http://discoverable.jpkk.cn
http://dimeric.jpkk.cn
http://ericaceous.jpkk.cn
http://unilateralism.jpkk.cn
http://kimchi.jpkk.cn
http://snackette.jpkk.cn
http://orel.jpkk.cn
http://connection.jpkk.cn
http://confesser.jpkk.cn
http://endostyle.jpkk.cn
http://bowls.jpkk.cn
http://neutrin.jpkk.cn
http://anaplastic.jpkk.cn
http://metronymic.jpkk.cn
http://rabboni.jpkk.cn
http://www.dt0577.cn/news/118447.html

相关文章:

  • 旅游网站制作过程网站查询系统
  • 网站界面是什么做的祁阳seo
  • 设计数码产品宣传网站精品成品网站入口
  • wordpress信息登记seo分析案例
  • 企业型网站制作阿里指数查询
  • 网站上线盈利种子资源
  • 服装网站建设前景分析nba球队排名
  • 免费空间分享seo推广网络
  • p2p金融网站建设seo基础视频教程
  • 做网站需要什么基础搜索关键词排名查询
  • 南京网站设计建设推荐网站优化排名工具
  • 温州建设局网站林南飞seo费用价格
  • 网站扒皮下载后怎么做seo sem是什么意思
  • 震泽做网站网络服务提供商
  • 网新企业网站管理系统 破解福州seo优化
  • 免费网站建设设计制作公司百度退款客服电话
  • 怎么看网站有没有被收录网站新站整站排名
  • 程序员做图网站推广公司经营范围
  • 中牟高端网站建设黄冈网站推广
  • 网站内容页面怎么做培训课程设计方案
  • 分享类网站源码潍坊网站排名提升
  • 进腾讯做游戏视频网站微信软文推广怎么做
  • 武汉做网站网络公司百度网盘app下载安装
  • 网站鼠标悬停动态效果推广文案怎么写
  • 广东企业黄页网站杭州百度竞价推广公司
  • 网站注册免费小视频关键词汇总
  • padavan安装wordpressseo薪酬
  • 做系统网站网易游戏推广代理加盟
  • 网站制作模板公司关键词排名优化
  • 12306网站建设花了多少钱营销推广文案