【Docker】使用Docker Compose部署项目

DockerCompose是管理多容器应用的工具,通过编写docker-compose.yml文件可以实现一键启动所有服务。文中示例展示了如何配置文件来启动app和db服务,包括端口映射、容器命名、数据卷挂载以及依赖关系。对于db服务,还详细说明了如何利用初始化数据卷自动执行SQL脚本进行数据库初始化。最后,提到了使用`docker-composeup-d`命令在后台启动服务。
摘要由CSDN通过智能技术生成

目录

前言

使用


前言

如果你部署项目需要很多个容器, 并且还是在手动一个一个启动的话来试试Docker Compose, 只需要写好Docker Compose文件运行命令就能帮你一次性全启动, 对微服务很友好啊~

使用

运行以下命令查看是否有版本号, 确保你已经安装了Docker Compose

docker-compose -version

 如果没有安装的话可运行以下命令进行安装

sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

有版本号要求的更换为链接当中的版本即可

接下来创建一个docker-compose.yml文件, 书写如下代码(仅作为参考):

version: '3.8' # compose文件的版本, 版本不一样语法可能也有差异

services:
  app:
    build: .      # 构建当前目录下的dockerfile
    ports:
      - "6898:8080"   # 容器的端口映射
    container_name: app_container  # 容器名
    volumes:
      - ./web:/usr/local/web   # 当前目录下的项目挂载到容器内的web目录(前提是容器内有该目录, 因此可以在dockerfile里加一个创建该目录的命令)
      - ./localhost:/usr/local/tomcat/apache-tomcat-9.0.73/conf/Catalina/localhost
    depends_on:
      - db   # 启动该服务依赖于db服务, 添加该参数后可以做到先启动db服务再启动当前的服务

  db:
    image: mysql:5.7.41  # 根据mysql镜像创建容器
    ports:
      - "3396:3306"     # 容器的端口映射
    container_name: mysql_container  # 容器名
    environment:
      MYSQL_ROOT_PASSWORD: root  # 设置root用户的密码
      MYSQL_DATABASE: test  # 新建库
    volumes:
      - ./initdb:/docker-entrypoint-initdb.d  # 将当前目录下的initdb文件夹挂载到docker-entrypoint-initdb.d 容器启动时自动运行initdb文件夹下的文件

 compose文件的版本要注意看能否在你的docker版本上使用:

  更多参数可以参考:

有一点需要说明, 我在db服务中添加了一个数据卷./initdb:/docker-entrypoint-initdb.d, 我在注释中已经说明了它的作用, 当它运行容器后会自动执行initdb文件夹下的*.sql脚本等, 比如我正好需要在创建的同时添加一些初始化数据, 那么只需要把sql脚本放入initdb文件夹挂载即可, 这些初始化操作会默认在MYSQL_DATABASE指定的库当中进行, 下面是mysql官方镜像的说明

 mysql官方镜像地址:Docker

 我们在使用Docker Compose启动容器后默认会为里面的容器建一条可以相互访问的网络, 假如我要app服务访问db服务的话只需要这么写:http://db:端口号/....../......

 

我的目录: 

 接下来只需把相关东西上传到服务器, 进入docker-compose.yml存在的目录, 执行命令就好啦

docker-compose up -d

如果想在前台启动调式的话去掉-d参数即可


👍点赞,你的认可是我创作的动力 !
🌟收藏,你的青睐是我努力的方向!
✏️评论,你的意见是我进步的财富!  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦境游子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值