当前位置 博文首页 > CHQIUU的专栏:使用Docker插件实现Springboot项目远程部署
IntelliJ IDEA的Docker插件能帮助我们将当前工程制作成Docker镜像、运行在指定的远程机器上,是学习和开发阶段的好帮手。
本次实战需要提前准备好以下内容:
在生产环境中安装Docker服务,同时开启Docker服务远程连接。开启Docker远程连接后,在开发和学习时都能带来便利,但请不要将此方式用在外部网络环境,以免带来安全问题,下图是官方警告:
原来的配置:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
修改为:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
修改完毕后保持退出。
[root@localhost ~]# systemctl daemon-reload && systemctl restart docker # 设置防火墙开放端口并重启防火墙 [root@localhost ~]# firewall-cmd --zone=public --add-port=2375/tcp --permanent success [root@localhost ~]# systemctl restart firewalld
# 先在本地试试Docker服务是否正常启动 [root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE redis latest 235592615444 3 weeks ago 104MB tomcat latest 2eb5a120304e 3 weeks ago 647MB centos 7 b5b4d78bc90c 2 months ago 203MB hello-world latest bf756fb1ae65 6 months ago 13.3kB # 在另一台装又Docker的机器上测试远程访问本机如下所示表示一切正常 [root@localhost ~]# docker -H tcp://192.168.95.2:2375 images REPOSITORY TAG IMAGE ID CREATED SIZE redis latest 235592615444 3 weeks ago 104MB tomcat latest 2eb5a120304e 3 weeks ago 647MB centos 7 b5b4d78bc90c 2 months ago 203MB hello-world latest bf756fb1ae65 6 months ago 13.3kB
在IDEA中打开“Plugins”界面(操作步骤“File->Settings…->Plugins”)搜索到Docker进行安装,如下图所示
安装完成后,需要重启IDEA,Docker插件安装完成。
在IDEA中打开“Docker”配置界面(操作步骤“File->Settings…->Build, Execution, Deployment->Docker”。在设置页面,按照下图的数字顺序创建一个Docker server并进行设置,其中"192.168.95.2"是Docker服务所在机器的IP地址,如果连接成功页面上会立即提示"Connection successful"。
至此,Docker插件准备完毕,远程连接也已经OK,可以尝试使用该插件了。
在Springboot项目pom.xml文件所在目录中,创建名为Dockerfile的文件,并配置以下内容:
# Docker image for springboot application # VERSION 1.0.0 # Author: chqiuu ### 基础镜像,使用alpine操作系统,openjkd使用8u201 FROM openjdk:8u201-jdk-alpine3.9 #作者 MAINTAINER chqiuu <chqiuu@qq.com> #系统编码 ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 #声明一个挂载点,容器内此路径会对应宿主机的某个文件夹 VOLUME /tmp #应用构建成功后的jar文件被复制到镜像内,名字也改成了wxoa.jar ADD target/wxoa-1.0.3.jar /usr/local/wxoa/wxoa.jar #启动容器时的进程 ENTRYPOINT ["java","-jar","/usr/local/wxoa/wxoa.jar","--spring.profiles.active=prod"] #暴露端口 EXPOSE 18090
如下图所示,点击“Edit Configuration…”打开配置项窗口:
创建一个Dockerfile配置,如下图所示
Dockerfile配置详情如下图所示,请按照图中的说明进行设置,确保每个红框中都会配置到,详细配置见Docker插件官网。最下面的那个"Run Maven Goal"点击后,会弹出一个小窗口 ,用来输入要执行的maven命令,这里输入clean package -U -DskipTests,表示每次在构建镜像之前,都会将当前工程清理掉并且重新编译构建:
设置完成后,点击下图红框中的绿色三角按钮,执行此配置,运行结果如下所示,项目构建成功后,在Docker上部署镜像成功,然后运行容器成功。
登录远程Docker,先后执行docker image和docker ps命令查看镜像和容器情况如下,可见一切正常:
[root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE wxoa latest 654468aa0c00 12 minutes ago 174MB redis latest 235592615444 3 weeks ago 104MB tomcat latest 2eb5a120304e 3 weeks ago 647MB centos 7 b5b4d78bc90c 2 months ago 203MB hello-world latest bf756fb1ae65 6 months ago 13.3kB openjdk 8u201-jdk-alpine3.9 3675b9f543c5 15 months ago 105MB [root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7c12bfac19c6 654468aa0c00 "java -jar /usr/loca…" 12 minutes ago Up 12 minutes 0.0.0.0:18090->18090/tcp wxoa
远程Docker所在服务器IP地址是192.168.95.2,因此在浏览器上访问地址:http://192.168.95.2:18090/wxoa,得到响应如下图所示,可见应用在容器中正常运行。到此IEDA下的Docker插件配置和使用实战就完成了。
cs