springboot(10)--docker部署springboot应用

docker:应用容器引擎,用户在客户端可以将应用和应用的执行环境、依赖包等打包成镜像,上传到镜像仓库,然后在服务器拉取镜像并执行。不同镜像之间的依赖互不影响,且镜像的执行效率很高。

可在:https://hub.docker.com/搜索,并拉取自己想要的镜像。

0.拉取jdk8镜像

这个待会用作基镜像。

docker pull openjdk:8-jdk-alpine

1.开启Docker服务的远程访问权限

由于我们是从客户端使用MAVEN插件将生成的镜像直接推送到镜像仓库上,然后要在远程Docker服务器上拉取镜像,所以要开启远程Docker服务的远程访问权限。

i>修改/etc/docker/daemon.json文件,添加Docker的远程访问端口及守护进程

{
  "hosts":["tcp://0.0.0.0:2375","unix:///var/run/docker.sock"]
}

ii>重新加载配置文件,并重启docker服务

systemctl daemon-reload
systemctl restart docker

iii>测试服务是否开启

curl 127.0.0.1:2375/info

2.在客户端创建镜像,并上传到镜像仓库

i>创建项目

目录结构如图:

ii>引入Docker打包插件的依赖

<build>
        <plugins>
            <!-- springboot打包 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
             
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.4.9</version>
                <configuration>
                   <!-- 镜像名称  -->
                   <imageName>lqdev.cn/demo</imageName>
                   <!-- docker远程服务器地址 -->
                   <dockerHost>http://服务器IP:2375</dockerHost>
                   <!-- Dockerfile文件存放目录 -->
                   <dockerDirectory>src/main/docker</dockerDirectory>
                   <resources>
                    <resource>
                        <directory>${project.build.directory}</directory>
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>

iii>编写Dockerfile文件

#引入基镜像
FROM openjdk:8-jdk-alpine

#在容器创建一个挂载点(/opt/tmp),并在宿主机创建一个文件夹/var/lib/docker/volumes/volumnId,将该目录挂载到容器的挂载点上,若容器挂载点有数据,将被复制到宿主机对应目录上,该语句后面的语句都在临时镜像上操作,不会被保存到宿主机。
VOLUME /opt/tmp

#将应用jar包添加到镜像上
ADD chapter-14-0.0.1-SNAPSHOT.jar app.jar

#打开应用服务端口
EXPOSE 8080

iv>编译、上传、在远程Docker服务器拉取镜像

mvn clean package docker:build -Dmaven.test.skip=true

3.在远程服务器查看镜像

docker images

4.在远程服务器执行镜像

docker run -d -p 8080:8080 lqdev.cn/my-springboot-images

5.测试镜像是否执行成功

http:服务器地址:8080/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值