0
点赞
收藏
分享

微信扫一扫

SpringBoot--实战开发--Docker部署(五十七)

Gaaidou 2021-09-21 阅读 59

一、Docker简介

  Docker时Docker.Lnc公司开源的一个基于LXC技术之上搭建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0协议开源。
  Docker属于Linux容器的一种封装,提供简单易用的容器使用接口。
  Docker将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了Docker,就不用担心环境问题。
1.可以运行jar包的环境
2.机器上已经安装了docker

  1. Dockerfile文件

二、远程发布

方法一:

  1. 编辑docker配置文件,配置开启端口
[root@localhost ~]# vi /usr/lib/systemd/system/docker.service
# 添加内容:
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock \
# 重载配置  
[root@localhost ~]# systemctl daemon-reload
# 重启docker
[root@localhost ~]# service docker restart

  1. docker 拉取 java环境
[root@localhost ~]# docker pull java
[root@localhost ~]# docker pull java
Using default tag: latest
Trying to pull repository docker.io/library/java ... 
latest: Pulling from docker.io/library/java
5040bd298390: Downloading 5.225 MB/51.36 MB
fce5728aad85: Downloading 7.056 MB/18.54 MB
76610ec20bf5: Downloading 8.989 MB/42.5 MB

  1. SpringBoot项目Docker插件配置
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <!-- docker插件 -->
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>1.0.0</version>
            <configuration>
                <!--注意 修改成远程服务器地址
                地址为Docker服务器地址,端口与上面设置一致-->
                <dockerHost>http://192.168.43.129:2375</dockerHost>
                <!--镜像名称必须全部小写-->
                <imageName>springboot-docker-test</imageName>
                <baseImage>java</baseImage>
                <!--生成jar-->
                <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                <!--资源路径-->
                <resources>
                    <resource>
                        <targetPath>/</targetPath>
                        <directory>${project.build.directory}</directory>
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
            </configuration>
        </plugin>
    </plugins>
</build>
  1. 运行布署


  1. 镜像查看
[root@localhost ~]# docker images

  1. 启动镜像
# 运行所构建的镜像,在后台运行容器,并将容器的8080端口绑定到宿主机的8001端口上
[root@localhost ~]# docker run -d -p 8001:8080 springboot-docker-test
4783f0dbfd038c45efcbcbecadb86f5ef4c0b30ad8b04826c31c59a479128a64

测试访问:


[root@localhost ~]# docker ps
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                    NAMES
4783f0dbfd03        springboot-docker-test   "java -jar /spring..."   2 minutes ago       Up 2 minutes        0.0.0.0:8001->8080/tcp   priceless_jepsen

方法二:

  1. pom文件配置
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <!-- docker插件 -->
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>1.0.0</version>
            <configuration>
                <!--修改成远程服务器地址-->
                <dockerHost>http://192.168.43.129:2375</dockerHost>
                <!--镜像名称要全部小写-->
                <imageName>springboot-dev</imageName>
                <!-- 使用Dockerfile文件发布,指定其路径 src/main/docker-->
                <dockerDirectory>src/main/docker</dockerDirectory>
                <resources>
                    <resource>
                        <!--资源路径与名称-->
                        <targetPath>/</targetPath>
                        <directory>${project.build.directory}</directory>
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
            </configuration>
        </plugin>
    </plugins>
</build>
  1. 编写Dockerfile文件
    在src/main目录中创建目录docker:
    创建文件:Dockerfile内容如下。
FROM java
VOLUME /tmp
ADD springboot-docker-1.0.0.jar app.jar
RUN bash -c 'touch /app.jar' ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

  1. 运行布署
    同方法一。


  2. 运行命令

[root@localhost ~]# docker run -d -p 8002:8080 springboot-dev
05cb676e5c66e81f65a7f2682697d51fad26e5e33855b0312c35cc7056060056

测试结果:


举报

相关推荐

0 条评论