Dockerfile之环境部署

Dockerfile

部署python

Django :全栈WEB框架 | Flask:轻量级WEB框架 | FastAPI:异步WEB框架

镜像发布

⾸先在https://hub.docker.com/地址,注册⼀个账户,账户信息为:wangrongwr password:+++++++++

如果想把⾃⼰的镜像发布到dockerhub的地址,那么镜像的名称必须是name/imageName如image的名称为hello 那么要发布的镜像名称就为:wangrongwr/hello,如果不这样处理的话,进⾏push的时候,就会提示没有权限的操作,这点需要特别的注意。下⾯详细的演示发布镜像的过程,特别注意,邮箱必须要进⾏确认和验证。

发布镜像的过程具体如下:

1、登录到dockerhub

image-20220812091604968

2、修改镜像⽂件为符合push的名称

3、发布镜像到dockerhub

image-20220811105318184

4、dockerhub查看

image-20220812094632532

5、删除后可在dockerhub中重新获取(docker pull ***)

image-20220811104424015

6、获取指令如下:

image-20220812142521977

image-20220812142658072

Dockerfile(2)

Python部署

本案例主要使⽤Python语⾔,使⽤的WEB框架是Flask,然后来实现⼀个⽹站的部署过程,也就是说写好程序代码 好后,开发dockerfile的代码,执⾏以及⽣成镜像,其他⼈基于该镜像,docker run就可以在电脑跑起来对应的应⽤程序。

源代码

img

Dockerfile文件

这部分的Dockerfile⽂件的信息具体为:

image-20220812142941278

构建镜像

下来构建镜像,指令为:

image-20220811100432834

镜像信息

查看镜像是否运行信息

image-20220812143814661

运行镜像

image-20220812144428476

结果验证

浏览器访问(http://localhost:5000/login

img

 

JAVA部署

操作源代码

img

Dockerfile文件

下来在docker⽂件夹⾥⾯创建Dockerfile的⽂件,⽂件内容具体如下:

img

启动程序jar包和Dockerfile文件保持在同一目录下

image-20220812151052117

构建镜像

image-20220812151150711

查看镜像消息

image-20220812151249777

启动镜像

成功部署java环境

image-20220812152053888

结果验证

浏览器访问地址:http://localhost:8080/login 结果与源代码中设定一致

img

一键package、构建镜像

操作源代码

img

一键生成镜像

构成jar包的同时,自动构建镜像

指令:mvn clean package -Dmaven.test.skip=true docker:build

image-20220812144739050

查看镜像app信息

image-20220812144912250

运行镜像

image-20220812145626635

结果验证

浏览器访问:http://localhost:8081/index,显示结果与源代码设定一致

img

 

补充:Maven

maven的作用

1、在文件中添加相应的配置,maven就会自动的下载相应的jar包;

2、下载依赖,只要配置的jar包所依赖的其他jar包都会被它自动下载下来;

3、可以直接通过它打包war或者jar项目。

常用指令

mvn clean :清理(指的是把构建成功的.war or .jar进行删除)

mvn package:打包 (把代码打包构建成.jar .war )

Java实战

以Java为例,目录结果如下:

img

 

一般情况下,源代码处于以下路径:DBPlus\src\main\java\com\example\dbplus\controller

img

使用mvn clean和mvn package指令会清理或重新创建target文件夹,运行jar包也处于此目录下(所有代码的集合)

image-20220812150857086

运行命令:java -jar xxx.jar.(jar的文件名) 运行命令,具体如下:java -jar DBPlus-0.0.1-SNAPSHOT.jar

image-20220812150806907

浏览器验证结果如下:

img

 

Docker-compose启动镜像

Docker-compose

依据前⾯的SpringBoot的项⽬,在src/main/docker的⽂件夹下创建docker-compose.yml的⽂件,在该⽂件⾥⾯ 定义容器的⽹络,端⼝,被启动的镜像信息.

查看是否安装成功,成功查看版本:docker-compose -v

image-20220812152952545

创建⽹络

下来创建⽹络,创建⽹络的⽬的是为了容器与宿主机是在同⼀个⽹络的模式下,⼀般我们创建的是Bridge,创建的 命令为:

image-20220812153001265

⽹络创建成功后,就可以查看到⽬前的⽹络情况中存在mynetwork,具体如下:

image-20220812153015292

image-20220812153025518

构建镜像

img

启动镜像

下来在src/main/docker的⽬录下,执⾏如下命令来启动镜像信息,具体如下:

image-20220812153808465

img

img

结果验证:

浏览器访问地址:http://localhost:8081/index 结果与源代码中设定一致

img

Docker安装软件

RabbitMQ

安装构建运行命令:docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.9-management

#执⾏后输出的结果信息

image-20220812155719586

打开http://localhost:15672/网址,输入账号:guest 密码:guest 进入

image-20220812155916087

image-20220812155931050

Docker容器监控

Docker监控原理

如果容器出现资源的瓶颈,那么就会导致容器中的程序都会出现问题,因为需要监控容器的资源信息。监控我们分 为两个维度来进⾏思考,具体如下: 基础数据采集 健康数据维护 cAdvisor监控 监控Docker的容器资源可以使⽤Google开源的cAdvisor,它可以收集到⼀台机器上所有运⾏的容器信息,不仅如 此,它还提供了基础查询界⾯和HTTP接⼝,⽅便其他组件来获取数据。监控到的资源主要是CPU,内存,⽹络吞 吐量,⽂件系统使⽤等情况。下⾯使⽤Docker的⽅式来搭建该环境。

cAdvisor搭建

搭建命令:docker pull registry.cn-hangzhou.aliyuncs.com/e7book/cadvisor:v0.37.0

image-20220812155214791

cAdvisor运⾏

下⾯通过详细的命令来运⾏该容器,执⾏的命令具体如下:

docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:ro --volume=/sys:/sys:ro -- volume=/var/lib/docker/:/var/lib/docker:ro --volume=/dev/disk/:/dev/disk:ro -- publish=8081:8080 --detach=true --name=cadvisor --privileged --device=/dev/kmsg registry.cn-hangzhou.aliyuncs.com/e7book/cadvisor:v0.37.0

image-20220812155318579

在浏览器中访问http://localhost:8081/ ,就会显示如下界⾯,具体如下:

 

posted @ 2022-08-12 15:24  LaraCroft  阅读(450)  评论(0编辑  收藏  举报