美文网首页docker学习优秀博客-已读
IDEA中通过docker插件部署springboot项目

IDEA中通过docker插件部署springboot项目

作者: 吟风者 | 来源:发表于2018-12-13 11:53 被阅读49次

    docker 相关部分

    windows 系统

    安装/升级Docker客户端

    对于Windows 10专业版以下的用户,推荐使用Docker Toolbox

    Windows安装文件:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/

    对于Windows 10专业版以上的用户 推荐使用Docker for Windows

    Windows安装文件:http://mirrors.aliyun.com/docker-toolbox/windows/docker-for-windows/

    配置镜像加速器

    针对安装了Docker Toolbox的用户,您可以参考以下配置步骤:

    创建一台安装有Docker环境的Linux虚拟机,指定机器名称为default,同时配置Docker加速器地址。

    docker-machine create --engine-registry-mirror=https://*****.mirror.aliyuncs.com -d virtualbox default
    

    查看机器的环境配置,并配置到本地,并通过Docker客户端访问Docker服务。

    docker-machine env default
    eval "$(docker-machine env default)"
    docker info
    

    针对安装了Docker for Windows的用户,您可以参考以下配置步骤:

    在系统右下角托盘图标内右键菜单选择 Settings,打开配置窗口后左侧导航菜单选择 Docker Daemon。编辑窗口内的JSON串,填写下方加速器地址:

    {
      "registry-mirrors": ["https://*****.mirror.aliyuncs.com"]
    }
    
    8.png

    编辑完成后点击 Apply 保存按钮,等待Docker重启并应用配置的镜像加速器。注意Docker for WindowsDocker Toolbox互不兼容,如果同时安装两者的话,需要使用hyperv的参数启动。

    docker-machine create --engine-registry-mirror=https://*****.mirror.aliyuncs.com -d hyperv default
    

    Docker for Windows 有两种运行模式,一种运行Windows相关容器,一种运行传统的Linux容器。同一时间只能选择一种模式运行。

    配置远程访问

    打开docker的设置界面,找到General,在里面找到Expose daemon on tcp://localhost:2375 without TLS选项,打上勾,即可进行本地或远程API调用。

    1.png

    linux 系统

    安装/升级Docker客户端

    更新apt软件包索引。

    sudo apt-get update
    

    安装最新版本的Docker CE,或者转到下一步安装特定版本:

    sudo apt-get install docker-ce
    

    配置镜像加速器

    您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json
    

    在文件中加入以下内容即可:

    {
      "registry-mirrors": ["https://********.mirror.aliyuncs.com"]
    }
    

    重新启动

    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

    配置远程访问

    编辑docker服务配置文件

    sudo vim /lib/systemd/system/docker.service
    

    找到如下配置

    ExecStart=/usr/bin/dockerd
    

    修改为

    ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
    
    9.png

    重启docker网络

    sudo systemctl daemon-reload 
    

    重启docker服务

    sudo systemctl restart docker
    

    测试

    curl http://localhost:2375/verion
    
    10.png

    镜像加速地址,可以是阿里云的,这里以阿里云为例:

    2.png

    IntelliJ IDEA 相关

    配置idea连接docker服务

    安装idea的docker插件

    setting中安装docker插件

    3.png

    等待安装完成重启idea

    配置连接

    重启完成后,我们打开settings可以看到docker

    4.png

    点击+,添加一个连接。

    5.png

    我们通过tcp的方式连接到linux或者windowsdocker服务。信息配置好后,idea会自动检测。然后会输出connection successful

    然后再工具栏选择docker的窗口,点击运行

    6.png

    接下来我们在idea上面操作docker

    7.png

    项目相关

    首先新建一个简单的springboot项目
    在项目的pom.xml文件中加入以下代码:

    <!--复制jar包到指定目录-->
    <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
            <execution>
                <id>gen-webadmin</id>
                <phase>package</phase>
                <configuration>
                    <tasks>
                        <copy todir="docker" file="target/${project.artifactId}-${project.version}.${project.packaging}" />
                    </tasks>
                </configuration>
                <goals>
                    <goal>run</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
    
    17.png

    在项目根目录下建立一个docker文件夹,在docker文件夹下新建一个Dockerfile文件,写入一下内容:

    FROM java:8u111
    
    VOLUME /tmp
    
    ADD *.jar app.jar
    
    EXPOSE 80
    
    ENTRYPOINT ["java","-jar","/app.jar"]
    
    # Ubuntu 时区
    RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    
    11.png

    然后配置docker启动项
    选择编辑:

    12.png

    添加一个启动项:

    13.png

    填写docker相关的参数:

    14.png

    在执行docker镜像之前需要把项目进行打包,所以在最下面的操作栏中加入maven打包相关的命令:

    添加一个maven任务:

    15.png

    添加maven打包命令:

    16.png

    maven打包分为了几步:
    第一步是清除上次编译或者打包的文件

    18.png

    第二步是对项目进行编译以及打成jar

    19.png

    第三步则是把打包好的jar文件移动到指定的docker文件夹,这样我们的docker对制作镜像时才能找到我们的jar文件,否则则会在制作过程中报错。

    20.png

    正常情况:

    Deploying 'signin Dockerfile: docker/Dockerfile'...
    Building image...
    Step 1/6 : FROM java:8u111
     ---> d23bdf5b1b1b
    Step 2/6 : VOLUME /tmp
     ---> Using cache
     ---> fca4a788f895
    Step 3/6 : ADD *.jar app.jar
     ---> a7d47f6bf6ec
    Step 4/6 : EXPOSE 80
     ---> Running in 7b57f4915a64
    Removing intermediate container 7b57f4915a64
     ---> 8a893ebb3052
    Step 5/6 : ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar", "--Dspring.config.location=application.yml"]
     ---> Running in 26ae8f5e5310
    Removing intermediate container 26ae8f5e5310
     ---> 28cc02929af7
    Step 6/6 : RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
     ---> Running in c0a1b980f7ca
    Removing intermediate container c0a1b980f7ca
     ---> 22034793c303
    Successfully built 22034793c303
    Successfully tagged signin:latest
    Creating container...
    Container Id: 0cefcdae23b548d1cdc6865b31f4f4c841de3bed1e6667e64b6583be0b00fd22
    Container name: 'signin'
    Attaching to container 'signin'...
    Starting container 'signin'
    'signin Dockerfile: docker/Dockerfile' has been deployed successfully.
    

    异常情况:

    Deploying 'signin Dockerfile: docker/Dockerfile'...
    Building image...
    Step 1/6 : FROM java:8u111
     ---> d23bdf5b1b1b
    Step 2/6 : VOLUME /tmp
     ---> Using cache
     ---> fca4a788f895
    Step 3/6 : ADD *.jar app.jar
    Error: ResponseItem.ErrorDetail[code=<null>,message=ADD failed: no source files were specified]
    Failed to deploy 'signin Dockerfile: docker/Dockerfile': ADD failed: no source files were specified
    

    docker启动完成

    22.png

    我们去linux上面查看一下:

    docker ps -a
    
    23.png

    相关文章

      网友评论

        本文标题:IDEA中通过docker插件部署springboot项目

        本文链接:https://www.haomeiwen.com/subject/hydvhqtx.html