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地址方法以及报错解决相关推荐

  1. Docker——容器内部执行宿主机的docker命令

    现在有一个需求是在容器内部使用docker命令,但试了一下报命令不存在 解决办法: 把docker相关的命令和依赖使用-v挂载到容器 docker@box:~$ docker run -it -d \ ...

  2. 【docker创建容器的坑】WSL启动nvidia-docker镜像:报错libnvidia-ml.so.1- file exists- unknown

    可能得错误一: 今天使用docker创建容器的时候总是出错,最后锁定问题在"--gpus all"这里: 不加--gpu all可以运行,加入了--gpus all就出错: doc ...

  3. flume获取mysql日志到hdfs_Hadoop实战:Flume输入日志到HDFS报错解决

    使用Flume把日志存储到HDFS,在启动时报错如下: 2017-06-16 08:58:32,634 (conf-file-poller-0) [ERROR - org.apache.flume.n ...

  4. [日常工作]WorkStation 使用端口转发的方式使用宿主机IP地址提供服务

    1. 虚拟机内的地址如果经常变化,或者是想使用宿主机进行网络服务 但是又不想有人能够访问具体的服务器提供机器.. 可以使用宿主机转发虚拟机的端口的方式来进行处理. workstation 比较好实现 ...

  5. Python获取局域网内可连通的主机ip地址

    使用python来获取整个局域网内可以连通的主机ip地址: 整体是思路就是 1.先获取我本机的ip地址 2.拿到我本机ip后,截取ip的最后一段,保留前一部分网段信息 3.调用cmd命令,循环从1循环 ...

  6. 如何从Docker容器内部获取Docker主机的IP地址

    本文翻译自:How to get the IP address of the docker host from inside a docker container As the title says. ...

  7. 解决Docker容器内访问宿主机MySQL数据库服务器的问题

    解决Docker容器内访问宿主机MySQL数据库服务器的问题 参考文章: (1)解决Docker容器内访问宿主机MySQL数据库服务器的问题 (2)https://www.cnblogs.com/ga ...

  8. Java 获取主机ip地址(ipv4)

    在java 应用中, 有时需要获取应用所在服务器的ip地址, 比如说利用Zookeeper 做动态节点上下线时. java 提供了InetAddress 类来获取主机ip地址, 但是使用的时候需要注意 ...

  9. JAVA获取主机IP地址

    JAVA获取主机IP地址 java 获取主机IP地址工具类 import org.springframework.web.context.request.RequestAttributes; impo ...

最新文章

  1. NeHe教程Qt实现——lesson12
  2. OpenCV之core 模块. 核心功能(1)Mat - 基本图像容器 OpenCV如何扫描图像、利用查找表和计时 矩阵的掩码操作 使用OpenCV对两幅图像求和(求混合(blending))
  3. 系统变量file.encoding对Java的运行影响有多大?(转)good
  4. 计算机英语 动态,计算机英语高级词汇精选
  5. 为什么我的索尼电视显示服务器异常,索尼液晶电视有哪些故障 索尼电视故障代码大全【详解】...
  6. 安装SQL Server 2005时,出现“SQL Server 服务无法启动。……”提示的解决方法
  7. 蚂蚁区块链正式升级为蚂蚁链:首次公布“日活”超1亿
  8. 审计风险控制流程的起点_【经验分享】审计整改流程体系的优化措施
  9. mac ---- 安装ftp服务器
  10. Java编程:排序算法——归并排序
  11. Linux下使用源码编译方式安装zlib
  12. 交换机及IP地址(概念)
  13. 理解手机中的感应器模块:重力感应/光线感应/电子罗盘/陀螺仪模块功能
  14. 文件夹或文件的隐藏和加密20201024
  15. java棋盘最短路径障碍物_(Eucledian最短路径)检测平面中障碍物的角落
  16. 程序员面试中注意事项
  17. Linux服务管理之unit的概念
  18. keepalived 中关于 weight 和 preempt_delay 的实验
  19. 解决windows10 无法开热点问题
  20. 有什么蓝牙耳机不贵又实用?学生党适合使用的蓝牙耳机

热门文章

  1. OpenCV计算图像像素最大值、最小值
  2. 新遇到的问题 , 进程退出代码是 '0xffffffff'
  3. python字符串问题—文件排版
  4. 【滤波器】基于matlab实现语音通信仿真附报告
  5. 电饭锅面包的做法大全 电饭锅怎么做面包
  6. AliOS-Things KV分析
  7. SBUS协议(20200210)
  8. Java面试手册——高频问题总结(二)
  9. 【科大讯飞Face】
  10. 十分钟教你写个软件防火墙!powershell。