2023-03-23
运维
00
请注意,本文编写于 535 天前,最后修改于 110 天前,其中某些信息可能已经过时。

目录

一丶准备资源
二、配置nginx
三、编写docker-compose.yml
四、执行部署
五、浏览器查看

Docker Compose部署多个应用实战练习部署nginx和jar包。

部署项目为若依的前后端分离项目,前端使用vue+nginx部署。后端springBoot,以jar包部署。

一丶准备资源

文件列表:

  • app
    • app.jar
  • nginx
    • cong
    • html
    • log
  • docker-compose.yml

二、配置nginx

 首先nginx配置文件请根据我的{% post_link 运维/docker/4、Docker安装软件 docker安装nginx文章%},3个文件夹保存到宿主机中,分别为

、html、log

 nginx配置文件根据自己实际测试项目配置,不会的百度的nginx部署vue项目。

三、编写docker-compose.yml

问题: 在反复部署中我遇到后端服务port 端口不生效

解决:加入了stdin_opentty 。其中 stdin_open 相当于 run 命令中的 -d,其中 tty 相当于 run 命令中的 -i

yml
version: '3' # 自定义版本号,一般是2,3 services: #前端 nginx my-nginx-pro1: # 服务名称 image: nginx # 创建容器时所需的镜像 container_name: my-nginx-pro1 # 容器名称,默认为"工程名称_服务条目名称_序号" restart: "always" #重启策略,能够使服务保持始终运行,生产环境推荐使用 volumes: # :号左边是宿主机的nginx的文件路径,右边是nginx容器的文件路径 - /mymkdir/softwore/docker/test/nginx/conf/nginx.conf:/etc/nginx/nginx.conf - /mymkdir/softwore/docker/test/nginx/conf/conf.d:/etc/nginx/conf.d - /mymkdir/softwore/docker/test/nginx/log:/var/log/nginx - /mymkdir/softwore/docker/test/nginx/html:/usr/share/nginx/html ports: # 宿主机与容器的端口映射关系 - "8080:8080" # 左边宿主机端口:右边容器端口 networks: # 配置容器连接的网络,引用顶级 networks 下的条目 data_security: ipv4_address: 192.128.0.2 privileged: true # 这个必须要,解决nginx的文件调用的权限问题 #后端 my-web-pro1: # 服务名称 image: openjdk:8 # 创建容器时所需的镜像 container_name: my-web-pro1 # 容器名称,默认为"工程名称_服务条目名称_序号" ports: # 宿主机与容器的端口映射关系 - '8090:8090' # 左边宿主机端口:右边容器端口 restart: "always" #重启策略,能够使服务保持始终运行,生产环境推荐使用 volumes: - ./app:/app # jar 包名称必须改成你自己的 command: java -Duser.timezone=GMT+8 -jar /app/app.jar #build: . #表示以当前目录下的Dockerfile开始构建镜像 networks: # 配置容器连接的网络,引用顶级 networks 下的条目 data_security: ipv4_address: 192.128.0.3 stdin_open: true #stdin_open相当于run命令中的-d tty: true #tty相当于run命令中的-i #网络服务 networks: data_security: # 自定义网络名字 driver: bridge # 网络模式,默认为 bridge ipam: config: - subnet: 192.128.0.0/16 #自定义固定容器ip 实现容器间通讯,增强docker-compose项目可移植性

四、执行部署

shell
#执行部署 建议使用-d后台执行 [root@MiWiFi-RA81-srv test]# docker-compose up -d [+] Running 2/2 ⠿ Container my-web-pro1 Started 1.1s ⠿ Container my-nginx-pro1 Started #执行完成之后 查看容器是否启动 [root@MiWiFi-RA81-srv test]# docker ps #部署失败执行删除所有容器继续重来 [root@MiWiFi-RA81-srv test]# docker rm -f $(docker ps -aq)

五、浏览器查看

image-20230322214840203

本文作者:酷少少

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!