IDEA使用Docker插件(菜鸟教程)

目录
  • 说明
  • 一、开启Docker远程访问
  • 二、连接docker
  • 三、镜像的拉取
  • 四、容器的创建与运行
  • 五、docker一键部署springboot项目
  • 可能的错误:

说明

之前docker的学习,包括镜像拉取,容器创建等操作都需要自己手动敲命令来实现,但是如果在idea中使用Docker插件,就可以不用敲命令也可以实现对docker的操作,不得不说idea这个工具是真的强!!!本文会持续更新,不断地扩充

本文仅为记录学习轨迹,如有侵权,联系删除

注意:一般是用的服务器,作为测试这里就采用虚拟机+Ubuntu系统的方式

一、开启Docker远程访问

如果使用idea编辑器的话,可以使用docker插件来远程使用服务器(虚拟机)上的docker,简单方便快捷的使用docker,更重要的是使用插件可以实现项目的一键部署,当然这还需要一些简单的配置。
默认的dokcer是不支持远程访问的,需要加点配置,开启Docker的远程访问

#修改Docker服务文件,需要先切换到root用户
vim /lib/systemd/system/docker.service
#注释掉"ExecStart"这一行,并添加下面这一行信息
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375

重新加载配置文件

#重新加载配置文件
systemctl daemon-reload
#重启服务
systemctl restart docker.service
#查看配置的端口号(2375)是否开启(非必要)
netstat -nlpt  #如果找不到netstat命令,可以先安装一下这个工具,具体百度

注意:如果上述过程失败的话,有下面这种方式,

首先确保端口号已经开放,这个很重要!!!,默认端口号2375

切换root用户,命令:sudo su

编辑docker相关配置:
命令:vim /lib/systemd/system/docker.service,进入编辑页面

找到ExecStart对应的那一行,添加代码:-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock (按下按键"i",进入编辑模式,然后就可以添加数据了)

保存退出,先按"esc"按键,然后输入命令::wq,回车即保存。

重启docker服务
守护进程重启:sudo systemctl daemon-reload
重启docker服务:sudo systemctl restart docker

查看端口号2375是否开放,出现如图则成功

二、连接docker

使用idea的docker插件连接docker,idea默认已经下载过docker插件了,如果没有的话,需要在idea下载docker插件

点击idea的设置选项(file --> setting -> docker),新建连接

连接成功之后就可以使用服务器(虚拟机)上的docker了

三、镜像的拉取

idea可以通过可视化的方式拉取镜像,不用自己去敲命令

有时候会出现拉取的时间超时的情况,可以配置一下国内的镜像获取阿里云的加速器

四、容器的创建与运行

创建并且运行docker容器

创建成功之后可以看到新创建的容器,也可以在服务器(虚拟机)上用docker命令查看

重启容器、停止容器和删除容器等操作

五、docker一键部署springboot项目

传统的docker部署springboot项目,需要自己手动配置Dockerfile文件,还需要将生成的jar包跟Dockerfile文件一起上传到服务器,整个流程下来很麻烦,如果用idea的docker插件就可以实现一键部署springboot项目,简单方便。

首先需要引入docker的构建工具

    <build>
        <!-- 引用我们的项目名字 -->
        <finalName>${project.artifactId}</finalName>

        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

            <!--使用docker-maven-plugin插件-->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <!--将插件绑定在某个phase执行-->
                <executions>
                    <execution>
                        <id>build-image</id>
                        <!--用户只需执行mvn package ,就会自动执行mvn docker:build-->
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>

                <configuration>
                    <!--指定生成的镜像名,这里是我们的作者名+项目名-->
                    <imageName>cainiao/${project.artifactId}</imageName>

                    <!--指定标签 这里指定的是镜像的版本,我们默认版本是latest-->
                    <imageTags>
                        <imageTag>latest</imageTag>
                    </imageTags>

                    <!--指定基础镜像jdk1.8-->
                    <baseImage>java</baseImage>
                    <!--
                    镜像制作人本人信息
                    <maintainer>bruceliu@email.com</maintainer>
                    -->
                    <!--切换到ROOT目录-->
                    <workdir>/ROOT</workdir>

                    <!--查看我们的java版本-->
                    <cmd>["java", "-version"]</cmd>

                    <!--${project.build.finalName}.jar是打包后生成的jar包的名字-->
                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>

                    <!--指定远程 docker api地址-->
                    <dockerHost>http://192.168.29.133:2375</dockerHost>

                    <!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <!--jar 包所在的路径  此处配置的 即对应 target 目录-->
                            <directory>${project.build.directory}</directory>
                            <!--用于指定需要复制的文件 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>

                </configuration>
            </plugin>
        </plugins>
    </build>

ok,接下来只要先点击clean清除之前的所有打包的文件,然后再点击package打包文件即可完成镜像的构建,真正的一键部署

到此镜像构建成功,接下来只要创建容器跑起来即可

通过ip访问

至此,一键构建部署springboot项目成功!

可能的错误:

“java.lang.NoClassDefFoundError:javax / activation / DataSource”(tomcat 9.0.12)“

网上查了一下,发现这样的一段话,具体看这里

刚好我想起来这个项目之前开发用的是jdk8,然后我现在用的jdk11,所以在构建的时候会出现这个问题,我感觉应该是这个问题导致,虽然构建成功了,运行访问都没有问题,建议开发跟构建docker的时候jdk版本保持一致。

到此这篇关于IDEA使用Docker插件(菜鸟教程)的文章就介绍到这了,更多相关IDEA使用Docker内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 在Idea中使用Docker部署SpringBoot项目的详细步骤

    前言 项目需要: 安装Dockeridea中安装docker插件,并配置docker一个SpringBoot项目创建Dockerfile 一.下载.安装.配置Docker下载Docker 下载地址:官网下载 Docker 安装 一直下一步就行 配置路径:Settings–General 勾选 Expose daemon on tcp://localhost:2375 without TLS 设置镜像,提高下载镜像的速度https://xaiqlt1z.mirror.aliyuncs.com 测试

  • IDEA中使用Docker Compose容器编排的实现

    (一)确保idea 中连接到docker (二)打包镜像 我这里测试的是前后分离项目 如果是微服务中呢,由于前文中在pom.xml 中绑定了idea docker 打包插件 在其 父工程中使用 打包命令 即可将其子模块 打成一个个镜像 (三)Compos编排文件编写 docker compose 使用镜像编排 version: '3' #compose 文件版本(1.2.x+ 用3即可) services: #指定服务名 建议还是与项目名一致 虽然其并没有什么实际性联系 lei-server:

  • IDEA使用Docker插件远程部署项目到云服务器的方法步骤

    1. 打开2375端口 编辑docker.service vim /lib/systemd/system/docker.service 在 ExecStart 后添加配置 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock 重启docker网络和docker systemctl daemon-reload systemctl restart-docker Centos7 开放端口 firewall-cmd --zone=public --add

  • IDEA使用Docker插件(菜鸟教程)

    目录 说明 一.开启Docker远程访问 二.连接docker 三.镜像的拉取 四.容器的创建与运行 五.docker一键部署springboot项目 可能的错误: 说明 之前docker的学习,包括镜像拉取,容器创建等操作都需要自己手动敲命令来实现,但是如果在idea中使用Docker插件,就可以不用敲命令也可以实现对docker的操作,不得不说idea这个工具是真的强!!!本文会持续更新,不断地扩充 本文仅为记录学习轨迹,如有侵权,联系删除 注意:一般是用的服务器,作为测试这里就采用虚拟机+

  • IDEA 通过docker插件发布springboot项目的详细教程

    一.编写Dockerfile文件 (1)右键项目名,新建一个文本文件,把名字改成Dockerfile,不用后缀.放在项目根目录下. (2)填写Dockerfile内容 FROM openjdk:8 VOLUME /tmp ADD target/*.jar app.jar ENTRYPOINT ["java","-jar","/app.jar"] FROM openjdk:8  // 表示基础环境是jdk8 ADD target/*.jar app

  • Ubuntu15.10安装docker和docker-compose教程

    1.查看Linux内核版本(3.8以上)和操作系统位数64位 uname -a 结果: Linux jiaxiaoniu-jnq 4.2.0-16-generic #19-Ubuntu SMP Thu Oct 8 15:35:06 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux 查看Ubuntu版本号命令:cat /etc/issue 2.安装Docker sudo apt-get install docker.io 3.安装后查看Docker版本 sudo do

  • CentOS7.3中Docker的安装教程

    一.简介 Docker 是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化. 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低. 本教程适合阅读人员:运维工程师.后端开发人员,通过本教程可以一步一步了解Docker的使用. 二.Docker的应用场景 1. Web 应用的自动化

  • eclipse中maven插件安装教程

    本文实例为大家分享了maven插件安装教程,供大家参考,具体内容如下 如果能打印如上信息,说明到此 Maven已经在你的电脑上安装完成. mvn 是 mavn 的一个指令,mvn -version 是查看版本信息,我的操作系统是 64位的 WIN7,安装的 maven 是 3.3.9 如果能打印如上信息,说明到此 Maven已经在你的电脑上安装完成. 修改maven的仓库的存放的位置: 找到 maven 下的 conf 下的 settings.xml 配置文件,我的是在 D:\Server\ma

  • 30个精美的jQuery幻灯片效果插件和教程

    这是一种在有限的网页空间内展示更多内容的良好方式,而且能吸引用户注意力.如果你想知道这是如何实现的,那么本文收集的30个幻灯片插件和教程将帮助您实现这种效果. JCOVERFLIP Live Demo CREATE A CUSTOM IMAGE GALLERY WITH JCAROUSEL Live Demo COIN SLIDER Live Demo LOOPEDSLIDER Live Demo NIVO SLIDER Live Demo COLORFUL SLIDERS WITH JQUER

  • 推荐40个简单的 jQuery 导航插件和教程(下篇)

    在这篇文章中,我为大家收集了40款非常棒的 jQuery 导航插件和教程.导航作为网站重要的组成部分,能够帮助用户找到他们想要的内容,因此导航设计的好坏决定了用户能够在你的网站停留更长的时间,浏览更多的内容.在下面的集合中,你会发现很多便利的 jQuery 导航插件和有用的教程,帮助你实现充满吸引力的网站导航,让你网站更有组织性和交互性. Creating CSS3 Dropdown Menu ( 演示 | 下载 ) Creating a CSS3 Dropdown Menu ( 演示 | 下载

  • 20个非常棒的 jQuery 幻灯片插件和教程分享

    滑块和幻灯片效果是常用的内容展示方式之一,这是一种在有限的网页空间内展示系列项目时非常好的方法.今天这篇文章就与大家分享20个非常棒的 jQuery 幻灯片插件和教程. > Slider Gallery with jQuery Create an Image Rotator with Description (CSS/jQuery) Create a Slick and Accessible Slideshow Using jQuery Simple JQuery Image Slide Sho

  • 整理8个很棒的 jQuery 倒计时插件和教程

    jQuery 倒计时插件和教程. jQuery Countdown spriteTimer php ajax/jquery countdown Add a Countdown Timer on Your Website jQuery Flipclock Fancy Countdown Cool jQuery Countdown Joomla jQuery Countdown

  • 推荐40款强大的 jQuery 导航插件和教程(上篇)

    在这篇文章中,我为大家收集了40款非常棒的 jQuery 导航插件和教程.导航作为网站重要的组成部分,能够帮助用户找到他们想要的内容,因此导航设计的好坏决定了用户能够在你的网站停留更长的时间,浏览更多的内容.在下面的集合中,你会发现很多便利的 jQuery 导航插件和有用的教程,帮助你实现充满吸引力的网站导航,让你网站更有组织性和交互性. A Stylish Navigation Menu With jQuery ( 演示 | 下载 ) Making a Fresh Content Accord

随机推荐