• springboot结合Docker部署


    • 创建Dockerfile

    FROM java
    VOLUME /tmp
    ADD springboot-docker-0.0.1-SNAPSHOT.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" ]
    

    FROM java:指Docker Hub上官方提供的java镜像,有了这个基础镜像后,Dockerfile可以通过FROM指令直接获取它的状态——也就是在容器中java是已经安装的,接下来通过自定义的命令来运行Spring Boot应用。

    VOLUME /tmp:创建/tmp目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录。

    ADD docker-springboot-0.0.1-SNAPSHOT.jar app.jar:将应用jar包复制到/app.jar

    ENTRYPOINT:表示容器运行后默认执行的命令

    • pom.xml文件引入docker插件

    <build>
    		<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>0.4.14</version>
                    <configuration>
                        <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                        <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>
    

    imageName:指定了镜像的名字

    dockerDirectory:指定Dockerfile的位置

    dockerHost:指定Docker远程API地址

    resources:指那些需要和Dockerfile放在一起,在构建镜像时使用的文件,一般应用jar包需要纳入

    • 用maven 进行打包并将镜像发布到docker中

    mvn package docker:build
    
    • 查看docker镜像

    $ docker images
    REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
    springboot/springboot-docker   latest              3d62f6903a78        20 minutes ago      676MB
    redis                          latest              55cb7014c24f        3 months ago        83.4MB
    nginx                          latest              cd5239a0906a        3 months ago        109MB
    rabbitmq                       3.7.3-management    2f415b0e9a6e        7 months ago        151MB
    java                           latest              d23bdf5b1b1b        20 months ago       643MB
    
    

    其中 springboot/springboot-docker 是刚才构建的镜像。现在可以为该镜像启动一个容器了。

    • 启动容器

    docker run -p 8080:8080 springboot/springboot-docker
    

    浏览器打开localhost:8080即可看见页面

    配置docker加速器 

    Linux

    curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
    

    该脚本可以将 --registry-mirror 加入到你的 Docker 配置文件 /etc/docker/daemon.json 中。适用于 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1,其他版本可能有细微不同。更多详情请访问文档。

    macOS

    Docker For Mac

    右键点击桌面顶栏的 docker 图标,选择 Preferences ,在 Daemon 标签(Docker 17.03 之前版本为 Advanced 标签)下的 Registry mirrors 列表中加入下面的镜像地址:

    http://f1361db2.m.daocloud.io
    

    点击 Apply & Restart 按钮使设置生效。

    Windows

    Docker For Windows

    在桌面右下角状态栏中右键 docker 图标,修改在 Docker Daemon 标签页中的 json ,把下面的地址:

    http://f1361db2.m.daocloud.io
    

    加到" registry-mirrors"的数组里。点击 Apply 。

  • 相关阅读:
    netstat命令查看服务器运行情况
    分布式架构进化之路
    显示器 Linux 性能 18 (一个命令行工具传递)
    _00024 尼娜抹微笑伊拉克_云计算ClouderaManager以及CHD5.1.0群集部署安装文档V1.0
    CMDeviceMotion使用
    Ubuntu 安装和配置minicom
    树阵
    HTML5在input背景提示文本(placeholder)的CSS美化
    PowerDesigner反projectM连接ySql没有mySql odbc驱动器
    Flume 1.5日志收集和存款mongodb安装结构
  • 原文地址:https://www.cnblogs.com/xz77/p/13501232.html
Copyright © 2020-2023  润新知