zoukankan      html  css  js  c++  java
  • 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 。

  • 相关阅读:
    Oracle 树操作(select…start with…connect by…prior)
    ORACLE序列的使用总结
    TNS-00512: Address already in use-TNS-12542: TNS:address already in use
    zabbix server is not running: the information displayed may not be current
    fuser:用文件或者套接口表示进程
    E514:write error(file system full?)
    Oracle中drop user和drop user cascade的区别
    Oracle字符集查看
    k-means聚类算法C++实现
    名校公开课网站汇总
  • 原文地址:https://www.cnblogs.com/xz77/p/13501232.html
Copyright © 2011-2022 走看看