(三)docker部署springboot项目

主要是使用Maven插件自动部署。

一、配置maven环境

(1)环境变量配置

         略

(2)阿里云服务器配置

主要是为了把项目推动到阿里云

找到maven配置文件settings.xml中的【servers】,添加如下:

username是阿里云的登录用户

password是镜像注册密码,不是登录密码哦,在阿里云注册的时候回有相应的提示如下:

二、修改宿主机docker配置

(1)修改宿主机的docker配置,让其docker服务可以远程访问, 暴露的docker服务端口号 2375

vim /lib/systemd/system/docker.service

(2)在ExecStart后面添加入下代码

-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

(3)刷新配置

systemctl daemon-reload
systemctl restart docker

访问链接进行验证是否成功:http://192.168.197.140:2375/version

三、部署项目

(1)登录阿里云中的镜像服务,创建仓库

 

 

(2)修改项目pom

【重点说明】

<build>
        <finalName>content-question-n001</finalName>
        <plugins>
            <!-- 插件一定要在其他构建插件之上,否则打包文件会有问题。 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <!--生成镜像相关配置-->
                <configuration>
                    <!-- 将forceTags设为true,这样就会覆盖构建相同标签的镜像  -->
                    <forceTags>true</forceTags>
                    <!-- 远程 docker 宿主机地址, 端口号是/lib/systemd/system/docker.service所暴露的端口号, 生成镜像到docker中 -->
                    <dockerHost>http://192.168.197.140:2375</dockerHost>
                    <!--内容是之前修改的maven的settings.xml配置文件中,server节点的id-->
                    <serverId>docker-aliyun</serverId>
                    <!-- 镜像名:阿里云镜像仓库地址
                                ${project.artifactId}引用当前工程名,
                                ${project.version}引用当前工程版本号
                                 -->
                    <imageName>registry.cn-shenzhen.aliyuncs.com/xxx(命名空间)/${project.artifactId}:${project.version}</imageName>
                    <!--基础镜像-->
                    <baseImage>java</baseImage>
                    <!--类似于Dockerfile的ENTRYPOINT指令-->
                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                    <resources>
                        <resource>  <!-- 指定打包的资源文件 -->
                            <targetPath>/</targetPath> <!-- 指定要复制的目录路径,这里是当前目录 -->
                            <directory>${project.build.directory}</directory> <!-- 指定要复制的根目录,这里是target目录 -->
                            <include>${project.build.finalName}.jar</include> <!-- 这里指定最后生成的jar包 -->
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>

(3)在项目根目录执行cmd命令

mvn clean package docker:build -DpushImage

【说明】

     mvn clean package   打包成jar

     docker:build    构建成镜像

     -DpushImage 推送到仓库

推送成功如下所示:

(4)启动容器(项目)

如果推送阿里云成功,则看到如下镜像

docker images

启动容器:

交互式容器
docker run -it --name=content-qeusiton-n001 -p 8086:8086  0d3b02fdd481 /bin/bash
守护式容器
docker run -id --name=content-qeusiton-n001 -p 8086:8086 0d3b02fdd481

在浏览器中访问:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值