一键部署应用到远程服务器,IDEA 官方 Docker 插件太顶了!(1)

简介: 一键部署应用到远程服务器,IDEA 官方 Docker 插件太顶了!

一、 docker开启远程连接访问

首先我们要开启docker的远程连接访问。保证不是docker所在的服务器,也能够远程访问docker。

Linux版的docker:


1、修改 docker.service 文件,添加监听端口 -H tcp://0.0.0.0:2375


vi /usr/lib/systemd/system/docker.service

找到 ExecStart,在最后面添加 -H tcp://0.0.0.0:2375,如下图所示


image.png


2、重启docker

systemctl daemon-reload
systemctl start docker

3、如果我们有防火前记得添加防火墙策略或者关闭防火墙。


window版docker


在电脑左下角找到docker图标,鼠标右键选择settings。将General菜单下的Expose daemon on tcp://localhost:2375 without TLS勾选。无需重启。



image.png


安装配置idea的docker插件

在File --> Settings --> Plugins 在输入框中搜索Docker,选择并安装。安装完成后重启Docker。

image.png


配置docker

在File–> Settings–>Build,Execution,Deployment中找到Docker


新建一个docker实例,然后在Engine API URL中将docker所在ip端口号填上,填完如果下面显示Connection successful证明连接docker成功。如果失败,可能是我们上一步docker开启远程连接未成功。


我们设置完成后,回到idea主界面,可以看到页面下面有一个docker窗口。点击绿色箭头,连接docker。连接上后显示Containers和Images就是我们现在docker中已经有的容器和镜像。

image.png



创建项目,并配置

一 、 创建项目

我就以一个简单的Eureka项目演示。


File–> New -->Project --> Spring Initializr



image.png

image.png

image.png





二、 配置项目

推荐一个开源免费的 Spring Boot 最全教程:


https://github.com/javastacks/spring-boot-best-practice


修改pom.xml文件,引入docker-maven-plugin插件相关配置. 改配置在 标签内

<!--使用docker-maven-plugin插件-->
<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>1.0.0</version>
    <!--将插件绑定在某个phase执行-->
    <executions>
        <execution>
            <id>build-image</id>
            <!--将插件绑定在package这个phase上。也就是说,
            用户只需执行mvn package ,就会自动执行mvn docker:build-->
            <phase>package</phase>
            <goals>
                <goal>build</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <!--指定生成的镜像名,这里是我们的项目名-->
        <imageName>${project.artifactId}</imageName>
        <!--指定标签 这里指定的是镜像的版本,我们默认版本是latest-->
        <imageTags>
            <imageTag>latest</imageTag>
        </imageTags>
        <!-- 指定我们项目中Dockerfile文件的路径-->
        <dockerDirectory>${project.basedir}/src/main/resources</dockerDirectory>
        <!--指定远程docker 地址-->
        <dockerHost>http://127.0.0.1:2375</dockerHost>
        <!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
        <resources>
            <resource>
                <targetPath>/</targetPath>
                <!--jar包所在的路径 此处配置的即对应项目中target目录-->
                <directory>${project.build.directory}</directory>
                <!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
                <include>${project.build.finalName}.jar</include>
            </resource>
        </resources>
    </configuration>
</plugin>


  1. 配置项目的基本配置。( 这里不是重点,一笔带过)

① 修改application.properties,添加项目相关信息。

#项目启动的端口号和IP地址
server.port=9090
eureka.instance.hostname=127.0.0.1
# 是否将其注册到注册中心, 如果不是集群环境,false
eureka.client.register-with-eureka=false
# 是否检索服务,单机情况下为false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/

② 找到项目启动类,添加@EnableEurekaServer注解


@EnableEurekaServer@SpringBootApplicationpublic class EurekaserverApplication {
public static void main(String[] args) {
    SpringApplication.run(EurekaserverApplication.class, args);
}}

添加Dockerfile文件。

我们在EeurekaServer\src\main\resources目录下,添加文件名为Dockerfile的文件。


如果我们docker中没有java:8 这个镜像,请先使用docker pull java:8,将镜像先拉下来。


FROM java:8
VOLUME /tmp
ADD *.jar app.jar
EXPOSE 9090
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]


我们添加了一个VOLUME指向“/ tmp”的内容,因为这是Spring Boot应用程序默认为Tomcat创建工作目录的地方。效果是在“/var/lib/docker”下的主机上创建一个临时文件,并将其链接到“/ tmp”下的容器。对于我们在此处编写的简单应用程序,此步骤是可选的,但如果需要在文件系统中实际编写,则对于其他Spring Boot应用程序可能是必需的。


为了减少Tomcat的启动时间,我们添加了一个指向“/dev/urandom”的系统属性作为熵源。如果您使用Tomcat(或任何其他Web服务器)的“标准”版本,则不需要更新版本的Spring Boot。



相关文章
|
21天前
|
弹性计算 安全 Linux
使用阿里云服务器安装Z-Blog博客网站流程,新手一键部署教程
本教程教你如何在阿里云99元服务器上,通过宝塔Linux面板一键部署Z-Blog博客。基于CentOS 7.9系统,从远程连接、安装宝塔面板、开放端口到部署Z-Blog全流程详解,操作简单,新手也能轻松搭建个人博客网站。
269 13
|
21天前
|
弹性计算 Devops Shell
用阿里云 DevOps Flow 实现 ECS 部署自动化:从准备到落地的完整指南
阿里云 DevOps Flow 是一款助力开发者实现自动化部署的高效工具,支持代码流水线构建、测试与部署至ECS实例,显著提升交付效率与稳定性。本文详解如何通过 Flow 自动部署 Bash 脚本至 ECS,涵盖环境准备、流水线搭建、源码接入、部署流程设计及结果验证,助你快速上手云上自动化运维。
83 0
监控 安全 Linux
45 0
|
2月前
|
存储 弹性计算 运维
阿里云服务器全解析:ECS是什么、应用场景、租用流程及优缺点分析
阿里云ECS(Elastic Compute Service)是阿里云提供的高性能、高可用的云计算服务,支持弹性扩展、多样化实例类型和多种计费模式。适用于网站搭建、数据处理、运维测试等多种场景,具备分钟级交付、安全可靠、成本低、易运维等优势,是企业及开发者上云的理想选择。
386 5
|
2月前
|
监控 Java Linux
Apache NiFi项目的编译与部署于CentOS服务器
总而言之,Apache NiFi的编译和部署虽然涉及多个步骤,但这些操作步骤简明扼要,即使是不太熟悉Java或Maven的用户也能跟随指南完成。通过遵循上述步骤,您将能够在CentOS服务器上成功部署Apache NiFi,为您的数据流处理任务建立一个功能强大的平台。
145 16
|
2月前
|
资源调度 负载均衡 JavaScript
使用PM2工具部署Vue.js应用于服务器
以上步骤完成之后,你就成功利⽤ PM⼆工具将 Vuejs 应⽰程序部署至服 务 器,并且配合反向代理实现了高效稳定访问及负载均衡功能。
96 0
|
2月前
|
运维 数据可视化 数据库
一小时搞定服务器软件部署:资深工程师实测方案
本文分享了一位运维工程师在短时间内将30个不同软件部署到新服务器上的实战经验。面对全新 Rocky Linux 系统,传统手工部署方式效率低下且容易出错。作者尝试多种自动化方案后,最终选择使用自动化部署工具,通过其内置的 Docker Compose 模板和可视化界面,实现快速、批量部署,大幅提升效率,30个应用仅用约1小时完成,显著节省时间和人力成本。
|
5月前
|
Java 应用服务中间件 Apache
在IntelliJ IDEA中使用Maven配置Tomcat环境
此配置方法具有较高的实用性,简单易懂。遵循以上步骤,您将能顺利在IntelliJ IDEA中使用Maven配置Tomcat环境,从而进行Web项目的开发和调试。
491 18
|
5月前
|
Java 应用服务中间件 Maven
在IntelliJ IDEA中如何配置使用Maven以创建Tomcat环境
所以,别担心这些工具看起来有些吓人,实际上这些都是为了帮助你更好的完成工作的工具,就像超市里的各种烹饪工具一样,尽管它们看起来可能很复杂,但只要你学会用,它们会为你烹饪出一道道美妙的食物。这就是学习新技能的乐趣,让我们一起享受这个过程,攀登知识的高峰!
332 27

热门文章

最新文章