docker compose java_Docker-compose部署java项目

本文介绍了如何使用docker-compose来部署Java项目。首先确保安装了docker和docker-compose,然后通过编写Dockerfile和docker-compose配置文件,定义服务、挂载卷、映射端口等。在启动前检查网络设置,并提供了清理已有容器和镜像的脚本,以确保每次部署都是最新的版本。
摘要由CSDN通过智能技术生成

Docker-compose部署java项目

前置条件:

安装docker

安装docker-compose

防火墙啥的都设置好

dockerfile-demo

FROM java:8

VOLUME /tmp

WORKDIR /

ADD ./project-demo-1.0.0.jar project-demo.jar

RUN bash -c 'touch /project-demo.jar'

EXPOSE 8080

ENTRYPOINT ["java","-jar","/project-demo.jar"]

compose-project-demo.yaml

version: '3'

# 关于网络,如果用到mysql或者redis,并且希望在同一个网络,那么就可以直接使用同一个网络名

# docker network create project-demo_bridge

networks:

project-demo_bridge:

driver: bridge

services:

project-demo:

container_name: project-demo

image: project-demo:1.0

restart: always

volumes:

# 同步时间

- /etc/localtime:/etc/localtime:ro

# 如果项目有些日志或者写文件,需要同步到宿主机器,也需要定义相应的卷

- ./data:/etc/project-demo/data

- ./log:/etc/project-demo/log

ports:

- 8080:8080

networks:

- project-demo_bridge

start-project-demo.sh

#! /usr/bin/bash

PROJECT_NAME=project-demo

containerName=$PROJECT_NAME:1.0

imagesName=$PROJECT_NAME:1.0

# 定义一个名称变量

network_name="$PROJECT_NAME_bridge"

filterName=`docker network ls | grep $network_name | awk '{ print $2 }'`

if [ "$filterName" == "" ]; then

# 不存在就创建

docker network create $network_name

echo "Created network $network_name success!!"

fi

existContainer=`docker inspect --format '{{.State.Running}}' ${containerName}`

function delExistImagesAndContainer() {

if [ "${existContainer}" == "true" ]; then

docker stop ${containerName}

echo "容器:${containerName}已停止"

docker rm ${containerName}

echo "容器:${containerName}已删除"

docker rmi ${imagesName}

echo "镜像:${containerName}已删除"

fi

}

function buildJar(){

echo "正在构建jar镜像"

# 其实这个构建指令是可以直接写到compose的那个启动文件中的

docker build -f dockerfile-$PROJECT_NAME -t $PROJECT_NAME:1.0 .

echo "镜像构建完成"

echo "正在创建并启动容器"

docker-compose -f ./compose-$PROJECT_NAME.yaml up -d

}

delExistImagesAndContainer

buildJar

Docker是一种容器化技术,可以在不同的操作系统上运行应用程序。Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。 以下是一些常用的DockerDocker Compose命令: ### Docker - `docker run`: 运行一个Docker容器。 - `docker ps`: 列出正在运行的Docker容器。 - `docker images`: 列出所有本地镜像。 - `docker build`: 使用Dockerfile构建一个Docker镜像。 - `docker push`: 将本地镜像上传到Docker Hub或其他Docker镜像仓库。 - `docker pull`: 从Docker Hub或其他Docker镜像仓库中下载一个镜像。 - `docker rm`: 删除一个或多个Docker容器。 - `docker rmi`: 删除一个或多个本地Docker镜像。 ### Docker Compose - `docker-compose up`: 构建并启动一个Docker Compose应用。 - `docker-compose down`: 停止并删除一个Docker Compose应用。 - `docker-compose ps`: 列出正在运行的Docker Compose服务。 - `docker-compose logs`: 查看一个Docker Compose服务的日志。 - `docker-compose exec`: 在一个Docker Compose服务中执行一个命令。 - `docker-compose build`: 构建一个Docker Compose服务的镜像。 - `docker-compose pull`: 下载一个Docker Compose服务的镜像。 ### Docker Compose配置文件 Docker Compose使用YAML格式的配置文件来定义多容器Docker应用程序。以下是一个示例配置文件: ``` version: '3' services: web: build: . ports: - "5000:5000" redis: image: "redis:alpine" ``` - `version`: 定义配置文件使用的Docker Compose版本。 - `services`: 包含一个或多个Docker容器服务的列表。 - `build`: 构建一个Docker镜像。 - `image`: 使用现有的Docker镜像。 - `ports`: 映射容器端口到主机端口。在此示例中,容器的5000端口将映射到主机的5000端口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值