3

【docker专栏8】使用IDEA远程管理docker镜像及容器服务 - 字母哥博客

 1 year ago
source link: https://www.cnblogs.com/zimug/p/16578510.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

使用命令行的方式管理服务器镜像及容器是运维人员最常用的方式,但是有的时候我们不得不远程操作docker或者是面向对docker并不熟悉的技术人员提供能力(配置管理员、测试人员),这种情况下图形界面就有必要了。提供图形界面的方式来操作docker也的确是比使用命令行的方式更直接、更简单。所以很多的厂商基于docker RESTful API向用户提供了用于docker容器镜像管理的用户图形界面,Portainer、Docker UI、Shipyard等等。本文不向大家介绍这些大家伙,介绍一个简单的IDEA插件,通过这个插件我们就可以在IDEA编辑器上管理docker容器及镜像

docker提供了远程服务的访问能力,即:docker REST API(通过RESTful HTTP API的方式,对外提供操作命令入口)。

一、开启docker远程访问服务

首先要明确的一点是,通过IDEA编辑器(远程工作主机)管理服务器上的docker镜像及容器,这属于远程服务访问(即通过网络访问REST API)。docker守护进程默认是不提供远程访问的,需要修改配置文件vim /usr/lib/systemd/system/docker.service,这是开启docker远程访问服务的第一步。0.0.0.0:2375表示在当前主机上所有网卡监听2375端口。

#修改ExecStart这行
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375  -H unix:///var/run/docker.sock  --containerd=/run/containerd/containerd.sock

第二步重新加载配置文件并重启docker守护进程,并使用下方的命令检查是否能够正确提供远程访问服务。或者通过浏览器访问http://<docker宿主机ip>:2375/info也可以进行验证,有响应结果即正确,返回的是一个JSON的docker服务状态及配置信息。

#重新加载配置文件,并重启docker守护进程
systemctl daemon-reload && systemctl restart docker

#查看端口是否开启,有一行记录显示2375端口被监听,即正确
netstat -nptl|grep 2375;

需要注意的是如果你的服务器上防火墙没有开放2375端口访问,请使用下面的命令开放2375端口(注意:下面的命令行适用于CentOS7、8发行版,如果你是其他的linux发行版,命令可能不一样)。

firewall-cmd --zone=public --add-port=2375/tcp --permanent;   #配置开放端口
firewall-cmd --reload;   #重新加载配置

二、IDEA安装Dokcer插件

下面我们在远程工作主机的IDEA编辑器上安装插件,当然前提是你已经安装了IDEA编辑器。按照如下图所示的步骤安装docker插件,"File -> Settings ->Plugins ->搜索Docker -> install安装",插件安装完成之后通常需要重启IDEA编辑器。我的IDEA版本是2021.3,这个插件是默认集成的,不需要安装。你可能会搜索出很多的docker相关的插件,记住图中的鲸鱼图标,这个才是我们需要的。

1815316-20220812072350990-135871432.png

配置Docker远程访问服务,如下图所示,在Engine API URL处填写tcp://<远程docker服务器IP>:2375 ,然后保存配置。

1815316-20220812072351342-1036107238.png

插件安装并保存配置,完成之后会出现一个新的Tab窗口,用于管理上述配置服务其上的Containers(容器)、Images(镜像)、Networks(网络)、Volumes(数据卷)。包含多少个容器,容器的运行状态,容器的数据卷、端口映射等信息都可以看到。镜像的基本信息、镜像删除、导入导出操作也都支持。我们还可以管理docker网络、管理数据卷,基本上几乎覆盖了所有的docker单机服务的管理功能。

1815316-20220812072351709-1561180647.png

所以说IDEA这个插件还是挺给力的,如果我们自己使用docker搭建一些环境,用它几乎是最方便的了。如果是管理企业级服务集群,还是需要更高级的图形界面管理工具,如rancher之类的。在文章的最后,笔者不得不说我们还遗漏了一个非常重要的内容,那就是docker远程对外提供HTTP RESTful API,如果不加上任何的安全措施是非常危险的行为 。后续笔者会介绍如何为docker远程访问服务添加证书,无证书的远程访问请求会被拒绝,同时使用HTTPS方式进行网络数据传输。
欢迎关注我的公告号:字母哥杂谈,回复003赠送作者专栏《docker修炼之道》的PDF版本,30余篇精品docker文章。字母哥博客:zimug.com


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK