ubuntu22上docker利用docker-compose.yum一键配置nginx,前端,后端,数据库

 

目录

一,配置含义:

二,dockerfile配置

三,一键部署


这篇文章中的操作只需要下载了docker就行,不用下载docker-compose。

version: "3.8"

services:
  mysql:
    image: mysql
    container_name: custom-mysql
    ports:
      - "3306:3306"
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 1234
    volumes:
      - "./mysql/conf:/etc/mysql/conf.d"
      - "./mysql/data:/var/lib/mysql"
      - "./mysql/init:/docker-entrypoint-initdb.d"
    networks:
      - custom-net
  custom-jar:
    build: 
      context: .
      dockerfile: custom_dockerfile
    container_name: custom-jar
    ports:
      - "8080:8080"
    networks:
      - custom-net
    depends_on:
      - mysql
  nginx:
    image: nginx
    container_name: custom-nginx
    ports:
      - "80:80"
    volumes:
      - "./nginx/nginx.conf:/etc/nginx/nginx.conf"
      - "./nginx/html:/usr/share/nginx/html"
    depends_on:
      - custom-jar
    networks:
      - custom-net
networks:
  custom-net:
    name: custom

一,配置含义:

1,version为配置文件版本,一般为3x

2,services的二级标签为服务名,服务名在同一个docker compose中唯一,在整个docker中不一定唯一

3,container_name容器名,是唯一的,不能重复命名

4,TZ是时区

5,volumes里面跟着数据卷,“宿主机中的目录 : 容器中的目录”

6,networks里面加自定义的网络名

7,depends_on里面加服务名而不是容器名,depends_on是指因为依赖问题,该容器需要在该容器的依赖容器之后启动,例如:后端依赖于mysql,需要在mysql启动后启动,而nginx又依赖于后端。

8,costum-jar为spring框架用mybatis生成的jar包的镜像,这里需要用dockerfile,dockerfile为将jar打包成镜像的配置文件,后面会有示例 + 说明。

9,ports 表示的是将宿主机的  端口映射到容器内部的端口。语法为"宿主机端口:容器内服务端口"

二,dockerfile配置

# 基础镜像
FROM openjdk:11.0-jre-buster
# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷贝jar包
COPY custom.jar /app.jar
# 入口
ENTRYPOINT ["java", "-jar", "/app.jar"]

openjdk是jdk的基础镜像,省去了打包jar的一些步骤

三,一键部署

将docker-compose.yum文件,dockerfile文件,nginx.conf文件拷贝到ubuntu上输入命令:

docker conpose up -d

可以一键部署docker (不用下载或创建镜像,输入命令一键部署)

ps:nginx.conf要放到宿主机相应的数据卷目录中不然会报错

如果要迁移mysql,我试过直接移动data目录好像不行,这里能够给到的解决方案是原数据库中导出成sql脚本,并放在conf对应的数据卷中,进入docker容器中执行sql脚本

进入docker命令如下:

docker exec -it <容器名或容器ID> bash

mysql导出导入脚本:

// mysql 指定数据库导出成sql脚本
mysqldump -u root -p  rizao > rizao.sql

// mysql 执行sql脚本
mysql -u root -p -D rizao < rizao.sql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值