java 获取docker ip_docker容器内部获取宿主机ip地址方法以及报错解决
1,在docker容器内执行以下python代码或根据需要插入到你的.py文件中:
import paramiko #通过pip3 install paramiko 安装
s = paramiko.SSHClient()
s.load_system_host_keys()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
s.connect(hostname="A",port=22,username="B",password="C") #A为容器虚拟网桥的IP地址,默认为172.17.0.1,B为容器的用户名,C是密码
stdin,stdout,stderr = s.exec_command("python3 /home/aiot/test_ip.py") #/home/aiot/test_ip.py是我宿主机下获取ip的脚本
ip = stdout.read()
test_ip.py脚本内容为:
import socket
"""get localhost ip address"""
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('8.8.8.8', 80))
ip = s.getsockname()[0]
print(ip)
可能遇到的问题以及解决办法:
1,报错"paramiko.ssh_exception.NoValidConnectionsError: [Errno None] Unable to connect to port 22 on 172.17.0.4"
主要原因是因为宿主机和docker容器的SSH端口22没有打开,请确保宿主机和docker容器内都启动了SSH服务并且22端口都已经开放。具体请参考这篇博客
2,报错"paramiko.ssh_exception.AuthenticationException: Authentication failed."
遇到这个问题首先请确保你的hostname、username、password都正确。再去到容器内/etc/ssh/sshd_config处看看配置文件中将
PermitRootLogin prohibit-password
改为
PermitRootLogin yes
如图:
如果解决完这一步还是报相同的错,则可以在容器内新建一个普通用户再去执行代码,应该可以解决了。
Done!
本文地址:https://blog.csdn.net/weixin_43220532/article/details/110879787
希望与广大网友互动??
点此进行留言吧!
java 获取docker ip_docker容器内部获取宿主机ip地址方法以及报错解决相关推荐
- Docker——容器内部执行宿主机的docker命令
现在有一个需求是在容器内部使用docker命令,但试了一下报命令不存在 解决办法: 把docker相关的命令和依赖使用-v挂载到容器 docker@box:~$ docker run -it -d \ ...
- 【docker创建容器的坑】WSL启动nvidia-docker镜像:报错libnvidia-ml.so.1- file exists- unknown
可能得错误一: 今天使用docker创建容器的时候总是出错,最后锁定问题在"--gpus all"这里: 不加--gpu all可以运行,加入了--gpus all就出错: doc ...
- flume获取mysql日志到hdfs_Hadoop实战:Flume输入日志到HDFS报错解决
使用Flume把日志存储到HDFS,在启动时报错如下: 2017-06-16 08:58:32,634 (conf-file-poller-0) [ERROR - org.apache.flume.n ...
- [日常工作]WorkStation 使用端口转发的方式使用宿主机IP地址提供服务
1. 虚拟机内的地址如果经常变化,或者是想使用宿主机进行网络服务 但是又不想有人能够访问具体的服务器提供机器.. 可以使用宿主机转发虚拟机的端口的方式来进行处理. workstation 比较好实现 ...
- Python获取局域网内可连通的主机ip地址
使用python来获取整个局域网内可以连通的主机ip地址: 整体是思路就是 1.先获取我本机的ip地址 2.拿到我本机ip后,截取ip的最后一段,保留前一部分网段信息 3.调用cmd命令,循环从1循环 ...
- 如何从Docker容器内部获取Docker主机的IP地址
本文翻译自:How to get the IP address of the docker host from inside a docker container As the title says. ...
- 解决Docker容器内访问宿主机MySQL数据库服务器的问题
解决Docker容器内访问宿主机MySQL数据库服务器的问题 参考文章: (1)解决Docker容器内访问宿主机MySQL数据库服务器的问题 (2)https://www.cnblogs.com/ga ...
- Java 获取主机ip地址(ipv4)
在java 应用中, 有时需要获取应用所在服务器的ip地址, 比如说利用Zookeeper 做动态节点上下线时. java 提供了InetAddress 类来获取主机ip地址, 但是使用的时候需要注意 ...
- JAVA获取主机IP地址
JAVA获取主机IP地址 java 获取主机IP地址工具类 import org.springframework.web.context.request.RequestAttributes; impo ...
最新文章
- NeHe教程Qt实现——lesson12
- OpenCV之core 模块. 核心功能(1)Mat - 基本图像容器 OpenCV如何扫描图像、利用查找表和计时 矩阵的掩码操作 使用OpenCV对两幅图像求和(求混合(blending))
- 系统变量file.encoding对Java的运行影响有多大?(转)good
- 计算机英语 动态,计算机英语高级词汇精选
- 为什么我的索尼电视显示服务器异常,索尼液晶电视有哪些故障 索尼电视故障代码大全【详解】...
- 安装SQL Server 2005时,出现“SQL Server 服务无法启动。……”提示的解决方法
- 蚂蚁区块链正式升级为蚂蚁链:首次公布“日活”超1亿
- 审计风险控制流程的起点_【经验分享】审计整改流程体系的优化措施
- mac ---- 安装ftp服务器
- Java编程:排序算法——归并排序
- Linux下使用源码编译方式安装zlib
- 交换机及IP地址(概念)
- 理解手机中的感应器模块:重力感应/光线感应/电子罗盘/陀螺仪模块功能
- 文件夹或文件的隐藏和加密20201024
- java棋盘最短路径障碍物_(Eucledian最短路径)检测平面中障碍物的角落
- 程序员面试中注意事项
- Linux服务管理之unit的概念
- keepalived 中关于 weight 和 preempt_delay 的实验
- 解决windows10 无法开热点问题
- 有什么蓝牙耳机不贵又实用?学生党适合使用的蓝牙耳机