docker compose微服务实战

1、编写代码构建打包

1.1、下载jar包

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

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

 

 1.3、编写Dockerfile文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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、构建镜像

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

 

 2、编写docker-compose.yml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#编写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

1
2
3
4
#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

 

 

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

 

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#进入容器
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、容器映射端口如果不通

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

 

 5.3、数据新增三条数据

 

 5.4、查询数据

 

 5.5、登录mysql查询数据

 

 6、关停compose

1
docker-compose down

  

posted on   zhaoshuzhan  阅读(124)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示