使用命令行的方式管理服务器镜像及容器是运维人员最常用的方式,但是有的时候我们不得不远程操作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方式进行网络数据传输。

欢迎关注我的公告号:字母哥杂谈,回复003赠送作者专栏《docker修炼之道》的PDF版本,30余篇精品docker文章。字母哥博客:zimug.com

【docker专栏8】使用IDEA远程管理docker镜像及容器服务的更多相关文章

  1. 非节点主机通过内网远程管理docker swarm集群

    这是今天使用 docker swarm 遇到的一个问题,终于在睡觉前解决了,在这篇随笔中记录一下. 在 docker swarm 集群的 manager 节点上用 docker cli 命令可以正常管 ...

  2. 用 Portainer 远程管理 docker

    参考的官网地址为:https://portainer.readthedocs.io/en/stable/deployment.html 先更新Centos docker 镜像加速地址: curl -s ...

  3. Docker 基本概念(三)-生命周期详解(镜像、容器、仓库)

    Docker三大组件:镜像.容器.仓库.  一.镜像 1 从仓库获取镜像 #一.从仓库获取镜像,帮助命令:docker pull -help 命令:docker pull [选项] [docker R ...

  4. Docker+Jenkins持续集成环境(4):使用etcd+confd实现容器服务注册与发现

    前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇到一个问题,jenkins构建出来的镜像部署后,需要通过ip:port去访问,有什么更好的 ...

  5. 《Docker从入门到跑路》之镜像和容器的基本操作

    一.获取镜像 官方提供了一个公共镜像仓库Docker Hub,默认是从这上面获取镜像的. 搜素镜像使用docker search 命令: # docker search --help Usage: d ...

  6. Docker安装基本命令操作,带你了解镜像和容器的概念!

    上一章节我们了解了Docker的基本概念,以及相关原理.这一章节进行实操. <Docker这么火爆.章节一:带你详尽了解Docker容器的介绍及使用> 一.Docker安装 声明:Dock ...

  7. VSCode远程连接Docker

    一.Docker开启远程访问 [root@local host ~]# vi /lib/systemd/system/docker.service #修改ExecStart这行 ExecStart=/ ...

  8. Docker学习笔记之运行和管理容器

    0x00 概述 容器是基于容器技术所建立和运行的轻量级应用运行环境,它是 Docker 封装和管理应用程序或微服务的“集装箱”.在 Docker 中,容器算是最核心的部分了,掌握容器的操作也是 Doc ...

  9. [置顶] Docker学习总结(5)——超实用Docker入门学习教程

    Docker是什么 Docker是一种容器技术,它可以将应用和环境等进行打包,形成一个独立的,类似于iOS的APP形式的"应用",这个应用可以直接被分发到任意一个支持Docker的 ...

随机推荐

  1. 使用acme.sh自动申请、续期、部署免费的SSL证书

    参考文档:https://github.com/acmesh-official/acme.sh 一个使用纯shell操作的免费SSL证书申请部署工具. 免费的SSL证书由以下CA机构提供: ZeroS ...

  2. 前端获取cookie,并解析cookie成JSON对象

    getCookie() { let strcookie = document.cookie; //获取cookie字符串 let arrcookie = strcookie.split("; ...

  3. ELK 是什么?

    E指的是ElasticSearch Elasticsearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch ...

  4. 1.Shell编程循环语句(if 、while、 until)

    循环语句 for循环语句 读取不同的变量值,用来逐个执行同一组命令 格式: for 变量名 in 取值列表 do 命令序列 done 示例:批量创建用户并设置密码 [root@localhost da ...

  5. React基础中的单一标签包裹的问题

    先上一段代码: <div id="example"> </div function HelloMessage(props1) { return (<h1&g ...

  6. 『现学现忘』Docker基础 — 39、实战:自定义Tomcat9镜像

    目录 1.目标 2.准备 3.编写Dockerfile文件 4.构建镜像 5.启动镜像 6.验证容器是否能够访问 7.向容器中部署WEB项目,同时验证数据卷挂载 (1)准备一个简单的WEB项目 (2) ...

  7. UiPath图片操作截图的介绍和使用

    一.截图(Take Screenshot)的介绍 截取指定的UI元素屏幕截图的一种活动,输出量仅支持图像变量(image) 二.Take Screenshot在UiPath中的使用 1. 打开设计器, ...

  8. 微服务追踪SQL(支持Isto管控下的gorm查询追踪)

    效果图 SQL的追踪正确插入到微服务的调用链之间 详细记录了SQL的执行内容和消耗时间 搜索SQL的类型 多线程(goroutine)下的追踪效果 在 Kubernetes 中部署微服务后,通过 Is ...

  9. 一张图进阶 RocketMQ - 消息发送

    前 言 三此君看了好几本书,看了很多遍源码整理的 一张图进阶 RocketMQ 图片链接,关于 RocketMQ 你只需要记住这张图!觉得不错的话,记得点赞关注哦. [重要]视频在 B 站同步更新,欢 ...

  10. 爬虫(9) - Scrapy框架(1) | Scrapy 异步网络爬虫框架

    什么是Scrapy 基于Twisted的异步处理框架 纯python实现的爬虫框架 基本结构:5+2框架,5个组件,2个中间件 5个组件: Scrapy Engine:引擎,负责其他部件通信 进行信号 ...