docker compose微服务实战

1、编写代码构建打包

1.1、下载jar包

#从百度云下载jar包
链接:https://pan.baidu.com/s/1ewKdyZpZJq6oGEZSZsrY_w 
提取码:csie

1.2、上传到Linux服务器/mycompose目录下

 

 1.3、编写Dockerfile文档

vi Dockerfile
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER sheyu
# VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为sheyu_docker.jar
ADD docker_boot-0.0.1-SNAPSHOT.jar sheyu_docker.jar
# 运行jar包
RUN bash -c 'touch /sheyu_docker.jar'
ENTRYPOINT ["java","-jar","/sheyu_docker.jar"]
#暴露6001端口作为微服务
EXPOSE 6001

1.4、构建镜像

#构建镜像
docker build -t docker_compose:v2.0 .

 

 2、编写docker-compose.yml文件

#编写docker-compose.yml文件
vi docker-compose.yml
version: "3"



services:

  microService:

    image: docker_compose:v2.0

    container_name: ms01

    ports:

      - "6001:6001"

    volumes:

      - /app/microService:/data

    networks:

      - atguigu_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:

      - atguigu_net

    command: redis-server /etc/redis/redis.conf



  mysql:

    image: mysql:5.7

    environment:

      MYSQL_ROOT_PASSWORD: '123456'

      MYSQL_ALLOW_EMPTY_PASSWORD: 'no'

      MYSQL_DATABASE: 'db2021'

      MYSQL_USER: 'zzyy'

      MYSQL_PASSWORD: 'zzyy123'

    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:

      - atguigu_net

    command: --default-authentication-plugin=mysql_native_password #解决外部无法访问

networks:
   atguigu_net:

3、执行docker-compose up -d

#docker compose安装
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version

 

 

#执行docker-compose up -d
docker-compose up -d

 

 4、进入mysql创建初始化数据

#进入容器
docker exec -it 9ac974d458b1 /bin/bash
#登录mysql
mysql -uroot -p
123456
#创建数据库
create database boot_docker;
use boot_docker;
#创建表
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`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='用户表';

 

 5、swagger测试

5.1、容器映射端口如果不通

#docker容器映射端口启动之后,映射端口不通
https://blog.csdn.net/wangdong422126/article/details/127163995
5.2、登录url
http://192.168.111.99:6001/swagger-ui.html

 

 5.3、数据新增三条数据

 

 5.4、查询数据

 

 5.5、登录mysql查询数据

 

 6、关停compose

docker-compose down

  

posted on 2022-11-01 10:56  zhaoshuzhan  阅读(114)  评论(0编辑  收藏  举报

导航