Compose简单编排微服务(Spring boot+mysql+redis)
1.准备spring boot项目,可以在百度云下载
链接:https://pan.baidu.com/s/1AIW8q7sNnXU3-MRC5vdn8g
提取码:ofs3
2.项目生成jar包,上传到Linux服务器上,自己创建文件夹
3.编写Dockerfile
# 基础镜像使用java FROM java:8 # 作者 MAINTAINER zgbo # VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp VOLUME /tmp # 将jar包添加到容器中并更名为docker_word.jar ADD docker_word-0.0.1-SNAPSHOT.jar docker_word.jar # 运行jar包 RUN bash -c 'touch /docker_word.jar' ENTRYPOINT ["java","-jar","/docker_word.jar"] #暴露6001端口作为微服务 EXPOSE 8090
4.构建镜像
docker build -t docker_word:1.0 .
docker images
5.编写docker-compose.yml
version: "3" services: microService: image: docker_word:1.0 container_name: dockerWord ports: - "8090:8090" volumes: - /app/microService:/data networks: - work_net depends_on: - redis - mysql redis: image: redis:6.0.8 ports: - "6379:6379" volumes: - /app/redis/redis.conf:/etc/redis/redis.conf - /app/redis/data:/data networks: - work_net command: redis-server /etc/redis/redis.conf mysql: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: 'root123' MYSQL_ALLOW_EMPTY_PASSWORD: 'no' MYSQL_DATABASE: 'db_text' MYSQL_USER: 'root1' MYSQL_PASSWORD: 'root1' ports: - "3306:3306" volumes: - /app/mysql/db:/var/lib/mysql - /app/mysql/conf/my.cnf:/etc/my.cnf - /app/mysql/init:/docker-entrypoint-initdb.d networks: - work_net command: --default-authentication-plugin=mysql_native_password #解决外部无法访问 networks: work_net:
6.启动所有docker-compose服务
前台执行 docker-compose up
或者
后台执行 docker-compose up -d
7.连接mysql创建库和表
CREATE TABLE `t_user` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `username` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '用户名', `password` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '密码', `sex` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '性别 0=女 1=男 ', `deleted` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '删除标志,默认0不删除,1删除', `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`id`) )
8.测试
http://172.16.15.187:8090/swagger-ui.html#/user-controller
mysql数据库也保存成功
redis保存成功
注意点
docker-compose.yml中创建了网络 所以要修改spring boot配置文件(不修改可以,使用ip访问)