zoukankan      html  css  js  c++  java
  • Mac下 Docker部署SpringBoot应用

    一、安装Docker环境

    使用 Homebrew 安装

    macOS 我们可以使用 Homebrew 来安装 Docker。

    Homebrew 的 Cask 已经支持 Docker for Mac,因此可以很方便的使用 Homebrew Cask 来进行安装:

    $ brew cask install docker
    
    ==> Creating Caskroom at /usr/local/Caskroom
    ==> We'll set permissions properly so we won't need sudo in the future
    Password:          # 输入 macOS 密码
    ==> Satisfying dependencies
    ==> Downloading https://download.docker.com/mac/stable/21090/Docker.dmg
    ######################################################################## 100.0%
    ==> Verifying checksum for Cask docker
    ==> Installing Cask docker
    ==> Moving App 'Docker.app' to '/Applications/Docker.app'.
    🍺  docker was successfully installed!

    在载入 Docker app 后,点击 Next,可能会询问你的 macOS 登陆密码,你输入即可。之后会弹出一个 Docker 运行的提示窗口,状态栏上也有有个小鲸鱼的图标()。

    从应用中找到 Docker 图标并点击运行。可能会询问 macOS 的登陆密码,输入即可。

    点击顶部状态栏中的鲸鱼图标会弹出操作菜单。

    第一次点击图标,可能会看到这个安装成功的界面,点击 "Got it!" 可以关闭这个窗口。

    启动终端后,通过命令可以检查安装后的 Docker 版本。

    $ docker --version
    Docker version 17.09.1-ce, build 19e2cf6

    二、SpringBoot应用打包成Docker镜像并运行

    部署过程分为以下几个步骤:

    1. 创建一个简单的spring-boot应用
    2. 打包运行应用
    3. 容器化应用
    4. 在pom文件中添加docker支持
    5. 创建docker镜像
    6. 运行docker容器
    7. 查看正在运行的容器
    8. 启动/关闭/重启/删除docker容器

    1. 2.创建SpringBoot应用这里就不赘述了

    3. 容器化应用

    在项目目录创建Dockerfile文件: src/main/docker/Dockerfile(没有后缀),内容如下:

    FROM frolvlad/alpine-oraclejdk8:slim
    VOLUME /tmp
    ADD demo-0.0.1-SNAPSHOT.jar app.jar
    RUN sh -c 'touch /app.jar'
    ENV JAVA_OPTS=""
    ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

    JAVA_OPTS中可以加一些参数,如果配置了多环境,可以加"-Dspring.profiles.active=prod"

    其中 demo-0.0.1-SNAPSHOT.jar 是项目打包后 /target/ 里面的文件名

    4. 在pom文件中添加docker支持

    <properties>
       <docker.image.prefix>ramer</docker.image.prefix>
    </properties>
    <build>
        <plugins>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.4.11</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>

    5. 创建docker镜像

    cmd进入到当前目录:

    cd ~/work/springboot-demo

    打包,创建镜像:

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

    注意: 请确保maven已添加到path中;并且已安装docker,如果没有安装,请访问: https://www.docker.com/community-edition#/download 下载合适的版本.

    6. 运行docker容器

    sudo docker run --name test -p 8080:8080 -d study/test

    容器的名字是test,容器的镜像是study/test

    在浏览器访问: http://localhost:8080/hello

    7. 查看正在运行的容器

    cmd: docker ps

    8. 启动/关闭/重启/删除docker容器

    cmd: docker start/stop/restart/rm CONTAINER_ID/NAME 
    其中: 
    CONTAINER_ID: 是容器id,执行 docker ps 可查看 
    NAME: 是容器的名称,也就是docker run –name后面的名字

    三、将docker镜像发送到服务器

    1.将指定镜像保存成 tar 归档文件

    docker save -o ~/Downloads/test.tar study/test

    2.利用scp命令将tar文件发送到服务器

    #这一步很重要,如果不加权限,会出现permission denial
    sudo chmod 777 ~/Downloads/test.tar
    scp ~/Downloads/test.tar test@40.73.130.115:/home/test/data/study/temp

    3.在服务器上还原docker镜像

    sudo docker load -i test.tar

    4.运行docker容器

    sudo docker run --name test -p 8080:8080 -d study/test

    参考资料:

    使用Docker部署 spring-boot maven应用

    Docker命令大全

  • 相关阅读:
    Rmarkdown:输出html设置
    Rmarkdown:输出pdf设置
    R语言绘图:雷达图
    R语言学习笔记(十五):获取文件和目录信息
    R语言学习笔记(十四):零碎知识点(41-45)
    R语言学习笔记(十三):零碎知识点(36-40)
    JVM调优-关于jvm的一些基本概念
    Markdown常用基本语法
    redis在windows中的安装
    jvm中加载类的全过程
  • 原文地址:https://www.cnblogs.com/yfzhou/p/9676202.html
Copyright © 2011-2022 走看看