设备高端网站建设薇晓朵 wordpress 下载
设备高端网站建设,薇晓朵 wordpress 下载,编程入门先学什么0基础,网站轮播效果Docker-compose下配置Mysql#xff0c;Redis#xff0c;MongoDB详解一、docker-compose简介二、构建一个实例项目1.前后端实现2.Dockerfile及docker-compose.yml3. 生成镜像三、实例程序源码一、docker-compose简介
Compose是用于定义和运行多容器Docker应用程序的工具。通过…
Docker-compose下配置MysqlRedisMongoDB详解一、docker-compose简介二、构建一个实例项目1.前后端实现2.Dockerfile及docker-compose.yml3. 生成镜像三、实例程序源码一、docker-compose简介
Compose是用于定义和运行多容器Docker应用程序的工具。通过Compose您可以使用YAML文件来配置应用程序的服务。然后使用一个命令就可以从配置中创建并启动所有服务。 使用Compose基本上是一个三步过程
使用Dockerfile定义你的应用环境以便可以在任何地方复制它。用docker-compose.yml定义组成应用程序的服务 以便它们可以在隔离的环境中一起运行。 docker-compose.yml主要结构
①. version: #版本
②. services: #服务redis: #服务一depends_on: #依赖于哪个服务它会在依赖的服务启动之后再启动image:build:network:volumesredis: #服务二web: #服务三
③. 其他设置网络卷、全局规则volumes:networks:configs:运行docker compose up或docker compose up -d(后台运行)运行您的整个应用程序。 注意每次修改任一配置文件后都要使用 docker-compose up --build 重新构建 总结有了docker-compose当我们想启动多个服务时无需再一个一个进行docker run操作而只需要编写docker-compose.yml配置文件即可一次运行你的全部服务。
二、构建一个实例项目 这里给出的实例Web框架使用Spring-boot并同时使用MysqlRedisMongoDB这三个现在最常见的数据库对其进行简单的计数操作。(即每访问一次网页三个库中的计数器分别加一) 1.前后端实现
//实现每次点击网页对各个数据库进行累加并返回当前的计数器记录的数值。
RequestMapping(/)public String home(Model model){int bef1 mysqlMapper.selectMysql();mysqlMapper.changeMysql();int res1 mysqlMapper.selectMysql();model.addAttribute(mysqlbef, bef1);model.addAttribute(mysqlres, res1);model.addAttribute(redisres, redisTemplate.opsForValue().increment(age));Query query new Query(Criteria.where(name).is(5yw));ListMap list mongoTemplate.find(query, Map.class, hellomongodb);int bef3 (int) list.get(0).get(age);//****************************************************************************************************Update update new Update();update.set(age, bef3 1);mongoTemplate.updateFirst(query, update, hellomongodb);//****************************************************************************************************ListMap list1 mongoTemplate.find(query, Map.class, hellomongodb);int res3 (int) list1.get(0).get(age);model.addAttribute(mongobef, bef3);model.addAttribute(mongores, res3);return Page/home.html;}!-- 前端接收后端传递的参数并显示 --
span idmysql/span
hr
span idredis/span
hr
span idmongo/span
/body
scriptvar message1 Mysql更新后: [[${mysqlres}]];var message2 Redis更新后: [[${redisres}]];var message3 Mongo更新后: [[${mongores}]];document.getElementById(mysql).textContent message1;document.getElementById(redis).textContent message2;document.getElementById(mongo).textContent message3;
/script2.Dockerfile及docker-compose.yml
Dockerfile将我们Springboot打包的jar包装配成为docker的镜像以在docker中运行。
# Docker image for springboot file run
# VERSION 0.0.1
# Author: eangulee
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER 5yw w1596253661gmail.com
# 将jar包添加到容器中并更名为app.jar
ADD dockerweb-0.0.1-SNAPSHOT.jar app.jar
# 运行jar包
ENTRYPOINT [java,-jar,/app.jar]docker-compose.yml是docker-compose的核心配置文件docker将会根据这个配置文件进行镜像的构建以及运行在类似于我们这类需要启用多个镜像(web,mysql,redis,mongo)的项目docker-compose减少了我们很多的工作量。(即我们无需对每个镜像依次进行run操作)
version: 3.8
services:dockerweb:build: .depends_on: # 使web项目在数据库均运行之后再运行- mysql- redis- mongoports:- 8000:8000 # 配置端口映射(主机端口:容器端口)mysql:image: mysqlenvironment:MYSQL_ROOT_PASSWORD: 123456 # 配置Mysql密码MYSQL_USER: rootMYSQL_PASS: 123456container_name: mysqlrestart: alwaysports:- 3306:3306volumes: # 卷挂载- /home/ostrich5yw/Desktop/DockerCompose/mysql/db:/var/lib/mysql- /home/ostrich5yw/Desktop/DockerCompose/mysql/log:/var/log/mysql- /home/ostrich5yw/Desktop/DockerCompose/mysql/conf/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnfredis:image: rediscontainer_name: redisrestart: alwaysvolumes:- /home/ostrich5yw/Desktop/DockerCompose/redis/data:/data # 主机路径:容器路径- /home/ostrich5yw/Desktop/DockerCompose/redis/redis.conf:/etc/redis/redis.confmongo:image: mongoenvironment:MONGO_INITDB_ROOT_USERNAME: rootMONGO_INITDB_ROOT_PASSWORD: 123456container_name: mongorestart: alwaysvolumes:- /home/ostrich5yw/Desktop/DockerCompose/mongo/db:/data/db- /home/ostrich5yw/Desktop/DockerCompose/mongo/log:/data/logsports:- 27017:27017
尤其要注意这里的service名称(例如dockerweb)这里的名称docker-compose会将他们对应成相应的域名。 例如我们如果要访问mysql一般是192.168.0.xxx:3306,而当我们有域名时只需要写为mysql:3306即可 在有多个服务时比如Mysql1在192.168.0.1Mysql2在192.168.0.2我们只需要写为mysql:3306而无需指定IP。
3. 生成镜像
我们将编写的docker-compose.ymlDockerfile以及导出的jar包放入同一文件夹并建立配置文件中描述的三个挂载文件夹。 我们运行docker-compose up运行镜像。 项目运行后我们需要为Mysql与MongoDB导入初始数据。 docker exec -it mysql /bin/bash 进入Mysql镜像 mysql -uroot -p 123456create database test;use test;CREATE TABLE hellomysql ( name varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, age int(11) NULL DEFAULT NULL ) ENGINE InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci ROW_FORMAT Dynamic;INSERT INTO hellomysql VALUES (‘5yw’, 0); docker exec -it mongo /bin/bash 进入MongoDB镜像 mongo 127.0.0.1:27017/admin -u root -p 123456use test;db.createCollection(“hellomongodb”)db.getCollection(“hellomongodb”).insert( { _id: ObjectId(“5feac4fba4de87481cd2139b”), name: “5yw”, age: NumberInt(“0”) } );exit 通过另一个窗口输入curl localhost:8000查看结果。
三、实例程序源码
https://gitee.com/Ostrich5ywtt/dockerweb
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/87228.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!