欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 文化 > 在Linux系统上使用Docker部署java项目

在Linux系统上使用Docker部署java项目

2024/10/24 5:22:57 来源:https://blog.csdn.net/2302_79840586/article/details/142285697  浏览:    关键词:在Linux系统上使用Docker部署java项目

一.使用Docker部署的好处:

在Linux系统上使用Docker部署项目通常会大大简化部署流程,因为Docker可以将应用程序及其依赖打包到一个独立的容器中

Docker打包应用程序时会将其与所有依赖项(操作系统、库等)一起打包。这样,无论应用程序在开发、测试还是生产环境中运行,都会有一致的运行环境

由于容器与主机操作系统隔离,Docker容器可以在任何支持Docker的平台上运行,不论是本地开发环境、测试服务器还是云平台。

总而言之,Docker通过容器化技术,提供了一种简化的、一致性的部署方式,解决了依赖冲突、环境差异、扩展性等传统部署方式中的痛点。这使得它在现代应用开发和部署中得到了广泛应用,尤其是在云计算和微服务架构中发挥着关键作用。

二.Docker部署的步骤:

1.准备工作:

在部署前,我们需要Dockerfile以及jar包(MySQL放在Linux就需要再项目配置文件的数据库架构名改成虚拟机的IP以及密码需改成Linux内的mysql密码)。

Dockerfile 是定义如何构建 Docker 镜像的蓝图,而 Docker 是用于构建、运行和管理这些镜像及其容器的工具。

我们需要先创建Dockerfile,就像需要一个网卡驱动程序来确保计算机能够与网络进行通信一样,需要一个 Dockerfile 来定义如何构建我们的 Docker 镜像。Dockerfile 是 Docker 镜像的“驱动程序”。就像下面这样定义一个Dockerfile文件,然后将这个和jar包拖动到Linux系统的 /root/ 目录下。

# 基础镜像
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 hm-service.jar /app.jar
# 入口
ENTRYPOINT ["java", "-jar", "/app.jar"]

2.构建镜像:

就像将网卡插入计算机来实现网络连接一样,你需要构建 Docker 镜像来创建运行你的应用程序的“容器”。

docker build -t my-java-app .

-t my-java-app 是为镜像指定的名称,.表示当前目录(Dockerfile 在这里)。

构建完镜像(image)后,我们可以使用下面的命令查看镜像是否创建成功:

docker image ls
//或
docker images

3.创建自定义网络:

 自定义网络使得容器可以更好地互相通信,并提供额外的网络隔离和配置选项。

(1)创建自定义网络:

docker network create --driver bridge my_custom_network

这里的 --driver bridge 指定使用桥接网络驱动(这是 Docker 的默认网络驱动)。my_custom_network 是你自定义的网络名称,可以根据需要更改。 

(2)查看自定义网络:

docker network ls

(3)连接自定义网络:

docker network connect my_custom_network mysql

 这里的 mysql 指一个正在运行的容器的名称或 ID。这个命令的作用是将现有的容器(在这个例子中是 mysql 容器)连接到一个自定义网络(my_custom_network)。

我们可以使用 docker ps 命令查看正在运行的容器。

(4)删除自定义网络:

docker network rm my_custom_network

4.创建并运行容器:

网卡需要网络配置才能正确工作,同样 Docker 容器也需要网络配置。我们可以通过 docker run 命令启动容器,并指定如何将容器的端口映射到宿主机的端口。

docker run -d --name my-running-app --network hmall -p 8080:8080 my-java-app

这里的 -d 参数表示在后台运行容器,--network hmall将容器连接到名为 hmall 的自定义网络(必须先创建才能使用自定义网络)-p 8080:8080 将容器的端口 8080 映射到宿主机的端口 8080,--name my-running-app 给容器指定一个名称,my-java-app 是你之前创建的镜像名称。

为了判断是否运行成功,我们可以使用下面命令查看容器运行日志:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com