当前位置: 首页 > news >正文

idea远程连接docker

idea远程连接docker

docker、ubuntu、linux、远程连接、IntelliJ idea

注意!本文中开启docker远程连接的方法只能在确定环境安全的内网中使用,不可在公网服务器设置,有极大安全风险!

注意!本文中开启docker远程连接的方法只能在确定环境安全的内网中使用,不可在公网服务器设置,有极大安全风险!

注意!本文中开启docker远程连接的方法只能在确定环境安全的内网中使用,不可在公网服务器设置,有极大安全风险!

步骤

> vim /usr/lib/systemd/system/docker.service # set nu 打开行号
  1. 找到第13行ExecStart,在末尾添加-H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375,如下:
  1 [Unit]2 Description=Docker Application Container Engine3 Documentation=https://docs.docker.com4 After=network-online.target docker.socket firewalld.service containerd.service time-set.target5 Wants=network-online.target containerd.service6 Requires=docker.socket78 [Service]9 Type=notify10 # the default is not to use systemd for cgroups because the delegate issues still11 # exists and systemd currently does not support the cgroup feature set required12 # for containers run by docker13 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H unix:///var/run/docker.sock -H tcp://0.0.0.0:237514 ExecReload=/bin/kill -s HUP $MAINPID15 TimeoutStartSec=016 RestartSec=217 Restart=always1819 # Note that StartLimit* options were moved from "Service" to "Unit" in systemd 229.20 # Both the old, and new location are accepted by systemd 229 and up, so using the old location21 # to make them work for either version of systemd.22 StartLimitBurst=32324 # Note that StartLimitInterval was renamed to StartLimitIntervalSec in systemd 230.25 # Both the old, and new name are accepted by systemd 230 and up, so using the old name to make26 # this option work for either version of systemd.27 StartLimitInterval=60s2829 # Having non-zero Limit*s causes performance problems due to accounting overhead30 # in the kernel. We recommend using cgroups to do container-local accounting.31 LimitNPROC=infinity32 LimitCORE=infinity3334 # Comment TasksMax if your systemd version does not support it.35 # Only systemd 226 and above support this option.36 TasksMax=infinity3738 # set delegate yes so that systemd does not reset the cgroups of docker containers39 Delegate=yes4041 # kill only the docker process, not all processes in the cgroup42 KillMode=process43 OOMScoreAdjust=-5004445 [Install]46 WantedBy=multi-user.target
  1. 重启
systemctl daemon-reload
systemctl restart docker 

重启后不要忘记把开发环境使用的MySQL和Redis容器启动起来

  1. 检查2375端口是否开放
> ss -tuln

使用curl连接一下

> curl http://localhost:2375/version
{"Platform":{"Name":"Docker Engine - Community"},"Components":[{"Name":"Engine","Version":"26.0.0","Details":{"ApiVersion":"1.45","Arch":"amd64","BuildTime":"2024-03-20T15:17:51.000000000+00:00","Experimental":"false","GitCommit":"8b79278","GoVersion":"go1.21.8","KernelVersion":"5.4.0-169-generic","MinAPIVersion":"1.24","Os":"linux"}},{"Name":"containerd","Version":"1.6.28","Details":{"GitCommit":"ae07eda36dd25f8a1b98dfbf587313b99c0190bb"}},{"Name":"runc","Version":"1.1.12","Details":{"GitCommit":"v1.1.12-0-g51d5e94"}},{"Name":"docker-init","Version":"0.19.0","Details":{"GitCommit":"de40ad0"}}],"Version":"26.0.0","ApiVersion":"1.45","MinAPIVersion":"1.24","GitCommit":"8b79278","GoVersion":"go1.21.8","Os":"linux","Arch":"amd64","KernelVersion":"5.4.0-169-generic","BuildTime":"2024-03-20T15:17:51.000000000+00:00"}
  1. 生成安全证书

执行下面这个脚本:

#!/bin/bash#相关配置信息
SERVER="192.168.56.10"
PASSWORD="vagrant"
COUNTRY="CN"
STATE="Shan Dong"
CITY="Ji Nan"
ORGANIZATION="Huai Yin"
ORGANIZATIONAL_UNIT="Dev"
EMAIL="xkm.0jiejie0@qq.com"###开始生成文件###
echo "开始生成文件"#切换到生产密钥的目录
if [ ! -d "/opt/docker_ca" ]; then
mkdir -p /opt/docker_ca
fi
cd /opt/docker_ca
#生成ca私钥(使用aes256加密)
openssl genrsa -aes256 -passout pass:$PASSWORD  -out ca-key.pem 4096
#生成ca证书,填写配置信息
openssl req -new -x509 -passin "pass:$PASSWORD" -days 365 -key ca-key.pem -sha256 -out ca.pem -subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORGANIZATION/OU=$ORGANIZATIONAL_UNIT/CN=$SERVER/emailAddress=$EMAIL"#生成server证书私钥文件
openssl genrsa -out server-key.pem 4096
#生成server证书请求文件
openssl req -subj "/CN=$SERVER" -sha256 -new -key server-key.pem -out server.csr
#配置白名单,多个用逗号隔开
sh -c 'echo subjectAltName = IP:'$SERVER',IP:0.0.0.0 >> extfile.cnf'
#把 extendedKeyUsage = serverAuth 键值设置到extfile.cnf文件里,限制扩展只能用在服务器认证
sh -c 'echo extendedKeyUsage = serverAuth >> extfile.cnf'
#使用CA证书及CA密钥以及上面的server证书请求文件进行签发,生成server自签证书
openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -\CAcreateserial -out server-cert.pem -extfile extfile.cnf#生成client证书RSA私钥文件
openssl genrsa -out key.pem 4096
#生成client证书请求文件
openssl req -subj '/CN=client' -new -key key.pem -out client.csr
#继续设置证书扩展属性
sh -c 'echo extendedKeyUsage = clientAuth >> extfile.cnf'
#生成client自签证书(根据上面的client私钥文件、client证书请求文件生成)
openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -\CAcreateserial -out cert.pem -extfile extfile.cnf#更改密钥权限
chmod 0400 ca-key.pem key.pem server-key.pem
#更改密钥权限
chmod 0444 ca.pem server-cert.pem cert.pem
#删除无用文件
rm client.csr server.csrecho "生成文件完成"
###生成结束### 
  1. 修改Docker配置
# 打开docker配置文件 (这个和上面的是一个文件,其使用了软链接,路径不同而已,不用纠结)
> vim /lib/systemd/system/docker.service
# 在ExecStart的/usr/bin/dockerd后面加\,然后添加如下的配置信息
ExecStart=/usr/bin/dockerd \--tlsverify \--tlscacert=/opt/docker_ca/ca.pem \--tlscert=/opt/docker_ca/server-cert.pem \--tlskey=/opt/docker_ca/server-key.pem \-H tcp://0.0.0.0:2376 \-H unix:///var/run/docker.sock \-H fd:// --containerd=/run/containerd/containerd.sock
# 重新启动docker
> systemctl daemon-reload && systemctl restart docker
  1. ctrl+alt+s打开设置

Tools > SSH Configurations,点击+,输入IP、用户名、密码,点击apply

  1. 配置idea客户端

将/opt/docker-ca目录下的ca.pem,cert.pem,key.pem(我这复制了所有.pem文件,懒得挑了)复制到自己的电脑中某固定目录(和虚拟机放在一起,建个文件夹:dockerFile)

在idea设置中,找到 Build,Execution,Deployment > Docker,点击+,连接方式选择TCP socket

url: https://192.168.56.10:2376
证书路径:D:\dev\iso\dockerFile\dockerFile

可以看到下方提示 Connection successful

  1. 点击确定,可以看到下方service窗口中出现了docker服务,双击连接,可以看到容器、镜像、网络、卷(英文)

点击具体容器实例的看板,可以看到其版本配置信息;
点击镜像,可以在右侧框中输入镜像名称拉取镜像(不知道为什么没有搜索功能,可能是我没找到);
这样一来用起docker要方便得多。

参考文章

声明:本文使用八爪鱼rpa工具从gitee自动搬运本人原创(或摘录,会备注出处)博客,如版式错乱请评论私信,如情况紧急或久未回复请致邮 xkm.0jiejie0@qq.com 并备注原委;引用本人笔记的链接正常情况下均可访问,如打不开请查看该链接末尾的笔记标题(右击链接文本,点击 复制链接地址,在文本编辑工具粘贴查看,也可在搜索框粘贴后直接编辑然后搜索),在本人博客手动搜索该标题即可;如遇任何问题,或有更佳方案,欢迎与我沟通!

相关文章:

idea远程连接docker

idea远程连接docker docker、ubuntu、linux、远程连接、IntelliJ idea注意!本文中开启docker远程连接的方法只能在确定环境安全的内网中使用,不可在公网服务器设置,有极大安全风险! 注意!本文中开启docker远程连接的…...

Docker 安装 ClickHouse 教程

Docker 安装 ClickHouse 教程 创建目录 首先,创建必要的目录用于存放 ClickHouse 的配置、数据和日志文件。 mkdir -p /home/clickhouse/conf mkdir -p /home/clickhouse/data mkdir -p /home/clickhouse/log chmod -R 777 /home/clickhouse/conf chmod -R 777 /…...

过渡到内存安全语言:挑战和注意事项

开放源代码安全基金会 ( OpenSSF )总经理 Omkhar Arasaratnam 讨论了内存安全编程语言的演变及其为应对 C 和 C 等语言的局限性而出现的现象。 内存安全问题已存在五十多年,它要求程序员从内存管理任务中抽离出来。 Java、Rust、Python 和 JavaScript 等现代语言通…...

在Pycharm中安装Cv2

安装OpenCV: 在Terminal中,输入以下pip命令来安装OpenCV: pip install opencv-python pip install opencv-contrib-python 如果下载速度较慢,可以考虑使用国内的pip镜像源,如清华大学源: pip install openc…...

减少重复的请求之promise缓存池(构造器版) —— 缓存promise,多次promise等待并返回第一个promise的结果

减少重复的请求之promise缓存池 —— 缓存promise,多次promise等待并返回第一个promise的结果 背景简介 当一个业务组件初始化调用了接口,统一个页面多吃使用同一个组件,将会请求大量重复的接口 如果将promise当作一个普通的对象&#xff0…...

cdq+bitset处理高维偏序

高维偏序 CDQ分治 假设处理的区间为 [ l , r ] [l,r] [l,r] ,CDQ分治的过程: 如果 l ≥ r l\geq r l≥r ,返回。设区间中点为 m i d mid mid ,递归处理 [ l , m i d ] [l,mid] [l,mid] 和 [ m i d 1 , r ] [mid1,r] [mid…...

敏捷开发和传统开发,你更适合哪种?

时间:2024年 10月 03日 作者:小蒋聊技术 邮箱:wei_wei10163.com 微信:wei_wei10 音频:喜马拉雅 大家好,欢迎来到“小蒋聊技术”,我是小蒋!今天我们来聊聊两个开发模式的“对决”…...

python之with

with上下文管理是什么呢? 一般都是使用系统提供的一些with语句,列如我要去读取一些数据进行分析,就可以使用with open去读取某些数据,或者我要把一些图片给他保存到某些地方,可以用with给他写入。 上下午管理器with是…...

vue3 升级实战笔记

最近要将公司项目的移动端进行 vue3 的升级工作,就顺便记录下升级过程。 项目迁移的思路 我的想法是最小改动原则。 从 vue2.x 升级到 vue3,且使用 vue3 的 选项式 API。构建工具要从 vue-cli(webpack)升级到 vite。路由需要升级到…...

利用函数模块化代码实操 ← Python

【知识点】 ● 模块化可以使代码易于维护和调试,并且提高代码的重用性。 ● 函数可以用来减少冗余的代码并提高代码的可重用性。函数也可以用来模块化代码并提高程序的质量。 ● 在 Python 中,可以将函数的定义放在一个被称为模块的文件中,这种文件的后缀…...

Java高效编程(12):重写toString方法

解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 尽管 Object 类提供了 toString 方法的默认实现,但它返回的字符串通常不是类的使用者想要看到的。默认返回的字符串格式是类名加上“”符号和哈希码的十六进制表示,例如 PhoneNu…...

谷歌给到的185个使用生成式AI的案例

很多公司从利用AI回答问题,进而使用AI进行预测,向使用生成式AI Agent转变。AI Agent的独特之处在于它们可以采取行动以实现特定目标,比如引导购物者找到合适的鞋子,帮助员工寻找合适的健康福利,或在护理人员交接班期间…...

程序员如何通过专业与软技能提升核心竞争力

一、引言  随着AIGC的兴起,AI辅助编程工具如chatgpt、midjourney、claude等接二连三地涌现,编程领域的变革正逐步深化。面对这一变革,程序员们对于未来工作的前景有着种种不同的担忧和期待。他们担心AI可能取代部分编程工作,同时…...

基于YOLOv8的智能植物监测机器人

摘要:针对传统的植物病害检测方法依赖专家的经验,耗时耗力,并且准确性受限于个人的水平等问题。文中提出无线通信模块采用HTTP协议来传输数据图片,采用SoC核心处理器实现了便携化,采用对射式红外避障传感器实现自动避障功能。以YOLOv8算法为控制核心,并添加注意力机制以提…...

2024年OpenAI DevDay发布实时 API、提示缓存等新功能

就在几天前,一些重要人物如前 CTO Mira Murati 离开了 OpenAI。因此,看到 Sam Altman 在 DevDay 上登台,讨论开发者的新产品,感觉有点奇怪。 随着公司内部的这些变化,你不禁会想:我们还应该信任他吗&#…...

Raspberry Pi3B+之安装bookworm+Rpanion系统

Raspberry Pi3B之安装bookwormRpanion系统 1. 源由2. 系统安装3. 系统安装3.1 烧录系统3.2 设备接线3.3 配置无线3.4 更新系统3.5 安装git3.6 克隆Rpanion3.7 安装Rpanion 4. 系统管理5. 附录问题1:error: externally-managed-environment问题2:bookworm…...

无人机专业除理论外,飞手执照、组装、调试实操技术详解

无人机专业的学习除了丰富的理论知识外,飞手执照的获取、无人机的组装与调试等实操技术也是至关重要的。以下是对这些方面的详细解析: 一、无人机飞手执照 1. 必要性 法规要求:根据《民用无人驾驶航空器系统驾驶员管理暂行规定》等相关法规…...

【网路通信基础与实践番外二】TCP协议的流量控制和拥塞控制以及二者区别和例题

TCP协议是端对端的协议,因此在数据进行传输的过程受发送方,数据通道,接收方三方状态的影响。我们用水龙头来比喻数据发送方,水管来比喻数据通道,水桶来表示数据接收方。 图(a)表示水桶太小,来不及接受注入…...

SpringBoot3+Vue3开发后台管理系统脚手架

后台管理系统脚手架 介绍 在快速迭代的软件开发世界里,时间就是生产力,效率决定成败。对于构建复杂而庞大的后台系统而言,一个高效、可定制的后台脚手架(Backend Scaffold)无疑是开发者的得力助手。 脚手架 后台脚…...

OpenFeign微服务部署

一.开启nacos 和redis 1.查看nacos和redis是否启动 docker ps2.查看是否安装nacos和redis docker ps -a3.启动nacos和redis docker start nacos docker start redis-6379 docker ps 二.使用SpringSession共享例子 这里的两个例子在我的一个博客有创建过程&#xff0c…...

【C语言】数组(下)

【C语言】数组(下) 6、二维数组的创建6.1二维数组的概念6.2二维数组的创建 7、二维数组的初始化7.1不完全初始化7.2完全初始化7.3按照行初始化7.4初始化时可以省略行,但是不能省略列 8、二维数组的使用8.1 二维数组的下标8.2二维数组的输入和…...

cGANs with Projection Discriminator

基于映射鉴别器的CGAN 模型中,判别器(Discriminator)不是通过将条件信息简单地与特征向量拼接(concatenate)来使用条件信息,而是采用一种基于投影的方式,这种方式更加尊重条件信息在底层概率模…...

mysql学习教程,从入门到精通,SQL HAVING 子句(32)

1、SQL HAVING 子句 当然!HAVING 子句在 SQL 中用于对分组后的结果进行过滤。它通常与 GROUP BY 子句一起使用,以便对聚合函数(如 SUM(), COUNT(), AVG(), MAX(), MIN() 等)的结果进行条件筛选。 以下是一个示例,假设…...

JavaScript while循环语句

While语句包括一个循环条件和一段代码块&#xff0c;只要条件为真&#xff0c;就不断循环执行代码块。 while(条件){语句;} var i0;while(i<100){console.log(i);i1;} 注意&#xff1a;所有的for循环都可以改写为while循环...

49天精通Java(Day 2):Java的基本语法

上期内容回顾 在上一期的内容中&#xff0c;我们介绍了Java的基本概念、历史背景&#xff0c;并完成了JDK 1.8的安装与环境配置。你还编写并运行了第一个简单的Java程序“Hello, World!”。今天&#xff0c;我们将深入探讨Java的基本语法&#xff0c;包括变量、数据类型、运算…...

uni-app之旅-day01-home页

首页 3.0 创建 home 分支 &#x1f355;&#x1f355;&#x1f355;运行如下的命令&#xff0c;基于 master 分支在本地创建 home 子分支&#xff0c;用来开发和 home 首页相关的功能git branch(查看分支)git checkout -b home(创建home分支) 3.1 配置网络请求 &#x1f32…...

Vue3轻松实现导出Excel文件功能

文章目录 1.前言2.安装插件3.案例3.1 定义表格数据,设置 id 选择器3.2 据所选 dom 对象生成 sheetbook3.3 写入文件3.4 生成 xlsx文件4.完整代码1.前言 前端常用的导出 Excel的 js 库是 xlsx,但是 xlsx不能设置样式。要想设置样式,必要要结合 xlsx-style 插件一起使用,但是…...

在Kali Linux中使用VNC和iptables配置xrdp以实现远程连接

在Kali Linux中&#xff0c;使用VNC和iptables配置xrdp以实现远程连接涉及几个步骤。不过&#xff0c;值得注意的是&#xff0c;VNC和xrdp是两种不同的远程桌面协议&#xff0c;它们通常不会在同一配置中同时使用&#xff08;除非有特殊的网络架构需求&#xff09;。然而&#…...

小徐影院:Spring Boot技术下的影院革新

第四章 系统设计 4.1 系统的功能结构图 通过系统需求分析&#xff0c;本小徐影城管理系统的功能结构设计如图4-1所示&#xff1a; 图4-1 系统功能图 4.2 系统数据库设计 4.2.1 数据库E-R图 在该系统的信息中&#xff0c;由于数据库的支持&#xff0c;我们可以对数据库进行收集…...

命名空间

在 C 中&#xff0c;变量、函数和类都是大量存在的&#xff0c;这些变量、函数和类的名称将都存在于全局作用域中&#xff0c;可能会导致很多冲突&#xff0c;使用命名空间的目的是对标识符的名称进行本地化&#xff0c;以避免命名冲突或名字污染&#xff0c;namespace 关键字的…...

南京专业做网站公司/搜索引擎排名竞价

[南洋理工大学]2021年THE世界大学综合排名第47名[南洋理工大学]2020年THE世界大学综合排名第48名[南洋理工大学]2019年THE世界大学综合排名第51名[南洋理工大学]2018年THE世界大学综合排名第52名[南洋理工大学]2019年THE世界大学专业排名商业与经济专业第65名[南洋理工大学]201…...

个人外贸网站建设/seo网站推广方案策划书

访问修饰符&#xff1a; private缺省protected public 作用范围&#xff1a; private 被private修饰的属性和方法&#xff0c;不能被其他类访问&#xff0c;子类不能继承也不能访问。只能在所在类内部访问。缺省 变量或者方法前没有访问修饰符时&#xff0c;可以被所在类访问&a…...

武昌做网站公司电话/北京昨天出啥大事了

手把手教你写DI_3_小白徒手支持 Singleton 和 Scoped 生命周期 在上一节&#xff1a;手把手教你写DI_2_小白徒手撸构造函数注入 浑身绷带的小白同学&#xff1a;我们继续开展我们的工作&#xff0c;大家都知道 Singleton是什么&#xff0c;就是全局只有一个呗&#xff0c;我们就…...

梧州论坛藤县论坛/seo优化的优点

题号 题目 知识点 难度 通过率 WY1 奖学金 动态规划模拟 较难 12.84% WY2 路灯 动态规划 较难 14.22% WY3 小易的升级之路 递归模拟 简单 20.03% WY4 炮台攻击 简单 18.14% WY5 扫描透镜 贪心模拟穷举 较难 15.89% WY6 合唱团 动态规划 较难 14.33% WY7 地牢逃脱 队列 简单 17…...

宜昌便宜做网站/厦门人才网官方网站

文章目录一、数据类型1.数值类型数据2.其它数据类型二、代码解释1.将mindspore数据类型转换为numpy数据类型2.将python内置数据类型转换为midnspore数据类型3.将mindspore数据类型转换为python内置数据类型欢迎回到MindSpore神经网络编程系列。在这篇文章中&#xff0c;我们将通…...

wordpress app制作/网站怎么被收录

2.3 tree&#xff1a;以树形结构显示目录下的内容 2.3.1 命令详解 ​ 【命令星级】 ★★★★☆ ​ 【功能说明】 ​ tree命令的中文意思为“树”&#xff0c;功能是以树形结构列出指定目录下所有内容&#xff0c;包括所有文件、子目录及子目录里的目录和文件。 ​ 【语法格…...