docker-compose部署java服务


一、下载安装docker-compose

在安装docker时,并不会同时把docker-compose安装好,需要额外安装一下

  1. 下载docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.28.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  1. 增加可执行权限
sudo chmod +x /usr/local/bin/docker-compose
  1. 添加软连接
sudo ln -s /usr/local/bin/docker-compose /home/opt/docker-compose

二、编写Dockerfile文件

如何构建Dockerfile文件可以参考以往文章
docker打包部署自己的应用

三、编写docker-compose.yml文件

  1. 首先创建一个docker-compose.yml文件
  2. 在该文件中添加服务信息
    在这里插入图片描述

配置说明

services: 定义了应用中每个需要启动的服务。这里定义了两个服务:一个是 Java Spring Boot 应用 my-springboot-app,另一个是 MySQL 数据库服务。
image: 指定要使用的 Docker 镜像,my-springboot-app:latest 表示我们之前构建的 Java 服务镜像。
build: 指定Dockerfile所在路径
container_name: 指定启动容器名称
ports: 将容器端口与宿主机端口进行映射。在本例中,将 Spring Boot 服务的 9999端口映射到宿主机的 9999 端口。
cap_add:
	- SYS_PTRACE: 让docker在容器里支持JDK自带的命令

四、服务启动

docker-componse up -d

命令执行后,Docker Compose 会根据 docker-compose.yml 文件启动所有服务,-d 表示在后台运行容器。

五、测试与验证

启动完成后,可以使用以下命令查看容器的状态:

docker-compose ps

访问浏览器,访问 http://localhost:9999,检查 Java 服务是否已成功运行。如果一切配置正确,应该可以看到 Spring Boot 应用的首页或相关接口。```

---

# 总结
使用 Docker Compose 部署 Java 服务有很多优势,特别是在微服务架构中,能够简化多容器应用的配置和管理。通过本文的讲解,你可以了解到:

如何为 Java 应用创建 Docker 镜像。
如何通过 Docker Compose 配置文件来编排多个服务。
如何启动和管理 Docker 容器,确保服务在生产环境中顺利运行。
Docker Compose 大大简化了应用的开发、部署和运维过程,尤其适合在多服务的环境中使用。
### 使用 Docker Compose 部署 Java 应用程序 #### 准备工作 为了确保能够顺利使用 `docker-compose` 来部署 Java 应用,需先确认环境已安装好 DockerDocker Compose。如果尚未安装 Docker Compose,则可以通过如下命令下载: ```bash curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ``` 这一步骤用于获取适合当前操作系统的版本并赋予执行权限[^1]。 #### 编写 docker-compose.yml 文件 创建一个名为 `docker-compose.yml` 的文件,在其中定义服务、网络以及卷等内容。对于简单的 Java 应用来说,可能只需要关注服务部分。下面是一个基本的例子: ```yaml version: '3' services: app: image: your-java-app-image # 替换成实际镜像名 ports: - "8080:8080" environment: SPRING_PROFILES_ACTIVE: dev depends_on: db: condition: service_healthy networks: default: external: name: cq-data-security ``` 这里假设应用程序监听的是 8080 端口,并且依赖数据库服务运行。注意这里的网络设置指向了一个外部存在的网络名称 `cq-data-security`,这是预先创建好的桥接模式下的自定义网络[^2]。 #### 构建与启动容器 当所有的准备工作完成后,可以在包含 `docker-compose.yml` 文件的目录下执行以下命令来构建和启动应用: ```bash docker-compose up --build ``` 这条指令会让 Docker Compose 去读取配置文件中的信息,拉取必要的镜像(如果没有本地缓存的话),然后按照顺序依次启动各个服务实例。 #### 关闭与清理资源 停止正在运行的服务可使用: ```bash docker-compose down ``` 若要彻底移除由该组合产生的所有数据卷,可以加上 `-v` 参数: ```bash docker-compose down -v ``` 这样做有助于保持主机上的存储空间整洁有序。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值