Docker部署SpringBoot项目

本文介绍如何通过Docker手动部署多个应用实例,并详细展示了如何在IntelliJ IDEA中配置Docker远程访问,实现便捷的开发与部署流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、手动部署

一、Dockerfile、jar包构建镜像

放入同一目录下,执行命令

docker build -t gateway .

二、创建启动镜像

docker run -p 6181:6181 -d \
--ip 172.20.0.5 \
--restart=always \
--net extnetwork \
-e LANG=en_US.UTF-8 \
-e LANGUAGE=en_US:en \
-e LC_ALL=en_US.UTF-8 \
--name word-eureka eureka
docker run -p 8899:8899 -d \
--ip 172.20.0.9 \
--restart=always \
--net extnetwork \
-e LANG=en_US.UTF-8 \
-e LANGUAGE=en_US:en \
-e LC_ALL=en_US.UTF-8 \
--name word-gateway gateway
-p 8899:8899 -d  --ip 172.20.0.6  --restart=always  --net extnetwork  -e LANG=en_US.UTF-8  -e LANGUAGE=en_US:en  -e LC_ALL=en_US.UTF-8 
docker run -p 9000:9000 -d \
--ip 172.20.0.7 \
--restart=always \
--net extnetwork \
-e LANG=en_US.UTF-8 \
-e LANGUAGE=en_US:en \
-e LC_ALL=en_US.UTF-8 \
--name word-user word-user
docker run -p 9001:9001 -d \
--ip 172.20.0.10 \
--restart=always \
--net extnetwork \
-e LANG=en_US.UTF-8 \
-e LANGUAGE=en_US:en \
-e LC_ALL=en_US.UTF-8 \
--name word-data word-data

-p 9001:9001 -d --ip 172.20.0.10 --restart=always --net extnetwork -e LANG=en_US.UTF-8 -e LANGUAGE=en_US:en -e LC_ALL=en_US.UTF-8

二、集成IDEA

1、Docker开启远程访问

#修改docker服务文件
vi /lib/systemd/system/docker.service
#修改 ExecStart
#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

2、重新加载配置文件

systemctl daemon-reload

3、重启服务

systemctl restart docker.service

4、查看端口是否开启

netstat -nlpt

5、IDEA配置Docker链接
在这里插入图片描述在这里插入图片描述
6、Docker-maven插件
依赖

 <dependency>
     <groupId>com.spotify</groupId>
     <artifactId>docker-maven-plugin</artifactId>
     <version>1.2.2</version>
 </dependency>

插件

 <build>
    <finalName>eng-eureka</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <mainClass>com.zjn.eng.eureka.EurekaApplication</mainClass>
                <outputDirectory>${project.basedir}</outputDirectory>
                <jvmArguments>-Dfile.encoding=${project.build.sourceEncoding}</jvmArguments>
                <includeSystemScope>true</includeSystemScope>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
<!--                <version>1.2.2</version>-->
            <configuration>
                <!--镜像名称-->
                <imageName>${project.artifactId}-test</imageName>
                <!--指定标签-->
                <imageTags>latest</imageTags>
                <!--基础镜像-->
                <baseImage>java:8</baseImage>
                <!--制作者提供本人信息-->
                <maintainer>ZZZ</maintainer>
                <!--切换到ROOT目录-->
                <workdir>/ROOT</workdir>
                <cmd>["java","-version"]</cmd>
                <entryPoint>["java","-jar","${pom.build.finalName}.jar"]</entryPoint>
                <!--指定DockerFile路径-->
                <!--                    <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>-->
                <!--指定远程docker api地址-->
                <dockerHost>http://192.168.0.168:2375</dockerHost>
                <!--复制jar包到docker指定目录-->
                <resources>
                    <resource>
                        <targetPath>/ROOT</targetPath>
                        <!--用于指定需要复制的根目录,${project.build.directory}表示target目录-->
                        <directory>${project.build.directory}</directory>
                        <!--用于指定需要复制的文件,指的时打包后的${project.build.finalName}jar包文件-->
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
            </configuration>
            <!--mvn打包时,构建镜像-->
            <executions>
                 <execution>
                     <id>build-image</id>
                     <phase>package</phase>
                     <goals>
                         <goal>build</goal>
                     </goals>
                 </execution>
             </executions>
        </plugin>
    </plugins>
</build>

没有配置executions执行命令

mvn clean package -Ppro docker:build
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值