maven项目容器化运行之1-基于1Panel软件将docker镜像构建能力分享给局域网

avatar
作者
筋斗云
阅读量:4

一.背景

       公司主机管理组的兄弟安装了1Panel(社区版v1.10.10-lts),期望我们开发的小项目都通过docker来部署。我第一步要配置的就是怎么将docker镜像构建能力共享的问题,因为我本机是windows,不想再去折腾安装docker环境。 

二.设置过程

       个人的粗浅认识:docker的核心能力就是构建轻量化虚拟机文件(镜像文件)和运行轻量化虚拟机。它的构建能力可以对本机服务,也可以对局域网服务。因此,是否安装1Panel与docker构建能力开放无关,只是通过1Panel工具可能编辑文件等更方便。

     通过网络收索,发现共享docker构建能力的核心其实就是网络监听,因为外部机器要通过网络传递构建指令。主要包括3种方式:/etc/default/docker、/usr/lib/systemd/system/docker.service、/etc/docker/daemon.json。3种方式到底适合哪种,各有什么区别,我没有深度学习,我的建议是依次看3个文件,看到了就修改,然后重启docker试试。

      1.查看docker是否已经开放

       我的思路是docker对外开放有默认的端口2375,我们可以先看看端口开放了没有。在1Panel中,可以在“主机”=》“终端”里面输入命令“netstat -tulnp”查看使用端口情况。我的已经打开了,所以显示里面有如下的: 

tcp6    0    0 :::2375        :::*           LISTEN      2378/dockerd 

      2.查找修改上面3个文件

       有就修改,没有就找下一个,修改一个就行。我就熟悉简单的命令,比如:cd、dir、ls、cat。这里要说明的是初学者建议用cat去编辑文件,容易上手一些。我就偷懒,直接用的1Panel的web编辑工具(“主机”=》“文件”)。

      1)没有 /etc/default/docker 文件

      2)有 /usr/lib/systemd/system/docker.service 文件,我修改的这个

        其中,我 修改了 “[Service]”中“ExecStart”这部分,插入了 “ -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock”的内容。

[Service] Type=notify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock -H fd:// --containerd=/run/containerd/containerd.sock ExecReload=/bin/kill -s HUP $MAINPID TimeoutStartSec=0 RestartSec=2 Restart=always

      3)有/etc/docker/daemon.json 文件,我没有修改这个 

     3.重启docker

      我的理解这个重启不是重启docker下面的容器实例,只是重启docker的守护进程。  我还是在1Panel的“主机”=》“终端”里面输入命令重启的。

sudo service docker restart

    4.再查看端口使用情况

      参考第一步。

三.总结

      docker核心功能包括镜像的构建和容器的运行,它可以开放端口将镜像构建的能力暴露。docker daeson就是docker的守护进程,开放能力是通过指定docker守护进程监听端口来实现的。后面开发人员就可以通过maven中docker插件来远程调用docker镜像构建能力了。

参考文章:

idea的Docker插件实现远程Docker连接(Remote API)_idea docker-CSDN博客

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!