IDEA远程管理docker镜像及容器服务的实现
作者:字母哥哥 发布时间:2022-01-07 16:26:48
使用命令行的方式管理服务器镜像及容器是运维人员最常用的方式,但是有的时候我们不得不远程操作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相关的插件,记住图中的鲸鱼图标,这个才是我们需要的。
配置Docker远程访问服务,如下图所示,在Engine API URL处填写tcp://<远程docker服务器IP>:2375
,然后保存配置。
插件安装并保存配置,完成之后会出现一个新的Tab窗口,用于管理上述配置服务其上的Containers(容器)、Images(镜像)、Networks(网络)、Volumes(数据卷)。包含多少个容器,容器的运行状态,容器的数据卷、端口映射等信息都可以看到。镜像的基本信息、镜像删除、导入导出操作也都支持。我们还可以管理docker网络、管理数据卷,基本上几乎覆盖了所有的docker单机服务的管理功能。
所以说IDEA这个插件还是挺给力的,如果我们自己使用docker搭建一些环境,用它几乎是最方便的了。如果是管理企业级服务集群,还是需要更高级的图形界面管理工具,如rancher之类的。在文章的最后,笔者不得不说我们还遗漏了一个非常重要的内容,那就是docker远程对外提供HTTP RESTful API,如果不加上任何的安全措施是非常危险的行为 。后续笔者会介绍如何为docker远程访问服务添加证书,无证书的远程访问请求会被拒绝,同时使用HTTPS方式进行网络数据传输。
来源:https://blog.csdn.net/hanxiaotongtong/article/details/124240589


猜你喜欢
- 持久层的那些事什么是 JDBCJDBC(JavaDataBase Connectivity)就是 Java 数据库连接, 说的直白点就是 使
- 这个例子用于演示在Spring Boot应用中如何验证Web 应用的输入,我们将会建立一个简单的Spring MVC应用,来读取用户输入并使
- 提供表示 Windows 注册表中的根项的 RegistryKey 对象,并提供访问项/值对的 static&
- Struts提供了一个更简单的方式来处理未捕获的异常,并将用户重定向到一个专门的错误页面。您可以轻松地Struts配置到不同的异常有不同的错
- 1. Maven简介相对于传统的项目,Maven 下管理和构建的项目真的非常好用和简单,所以这里也强调下,尽量使用此类工具进行项目构建, 它
- 1. 概述JDK * 是利用java反射机制 生成一个实现接口的匿名类, 在调用具体方法前调用InvocationHandler来处理Cg
- 前言相信大家都用过Spring Security和Shiro的框架,Spring Security必须配合Spring 全家桶使用和繁琐的配
- 这篇文章主要介绍了SpringCloud断路器Hystrix原理及用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参
- 我们用React Native 做混合开发的时候免不了要原生和React Native 进行通信交互,这篇文章就是分享原生模块与JS传递数据
- 1、前言WorkManager 是适合用于持久性工作的推荐解决方案。如果工作始终要通过应用重启和系统重新启动来调度,便是持久性的工
- 前言BeanPostProcessor 接口定义了一个你可以自己实现的回调方法,来实现你自己的实例化逻辑、依赖解决逻辑等,如果你想要在Spr
- 本文实例为大家分享了banner轮播图无限轮播效果的具体代码,供大家参考,具体内容如下效果展示第一步(权限配置)<uses-permi
- 本文实例主要实现了网页照相机程序的功能。C#实现将网页保存成图片格式,简单实现网页拍照,主要是基于ActiveX 组件的网页快照类,Acit
- 什么是泛型Java泛型(generics)是JDK5中引入的一个新特性,泛型提供了 编译时类型安全监测机制,该机制允许我们在编译时检测到非法
- 本文实例讲述了C#简单实现防止多个程序运行的方法。分享给大家供大家参考,具体如下:/// <summary>/// 应用程序的主
- @Async注解如何实现方法异步处理大批量数据的时候,效率很慢。所以考虑一下使用多线程。刚开始自己手写的一套,用了线程池启动固定的线程数进行
- 本文介绍了两种密码加密的方法,这两种很常见可以再百度随意找到。1.摩斯密码;说道密码加密不得不提的方法。很是经典。首先说一下他的对照表,直接
- 批量修改代码如下<update id="UPDATE_HOTEL_REAL_TIME_PRICE" paramet
- 前言今天看到某一篇文章的一句话 单例DCL 前面加 V 。就这句话让我把 单例模式 又仔细看了一遍。Java
- Android Studio连接手机设备教程,供大家参考,具体内容如下一、ADB环境配置1.查看自己Android Studio配置的sdk