博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker笔记--容器之间如何互相免密?
阅读量:5754 次
发布时间:2019-06-18

本文共 1654 字,大约阅读时间需要 5 分钟。

在使用docker搭建hadoop分布式集群的时候,需要各容器之间相互免密登录,传统的方式我想或许会很麻烦,特别是当容器达到几百上千台的时候,这时就需要有一种方式来更简单实现免密登录了。

环境介绍:

宿主机:centos 7

docker 版本:18.09.0

镜像版本:ubuntu:14.04(官方镜像,无ssh,需要自行安装)

方法一:

      怎么说呢,第一种方法不是不可以,但很麻烦。这里只是说一下方法:

当容器创建完成以后,拷贝容器里面的主机名和ip映射关系到本地host.file文件,通过这个host.file文件远程到容器执行ssh-keygen命令生成秘钥,然后把每一个容器生成的秘钥拷贝到宿主机的authorized_file,最后把host.file文件上传到容器里面/etc/hosts下,把authorized-file文件拷贝到容器的~/.ssh/authorized_keys,当然,这个需要脚本实现,比较麻烦。其实也可以用docker自带的--add-host命令。下面介绍一种更简单的方式

方法二:

(1)因为官方的ubuntu镜像没有ssh,所以需要在ubuntu里面安装,这里有两种方法,第一种是通过Dockerfile文件,第二种是先docker run 然后安装完ssh在执行doxker commit。我这里使用Dockerfile

FROM ubuntu:14.04

MAINTAINER yjt xxx
RUN sudo apt-get update && \
sudo apt-get install -y net-tools openssh-server psmisc iproute wget vim
RUN ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' && cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys && \
sed -i 's/PermitEmptyPasswords yes/PermitEmptyPasswords no /' /etc/ssh/sshd_config && \
sed -i 's/PermitRootLogin without-password/PermitRootLogin yes /' /etc/ssh/sshd_config && \
echo " StrictHostKeyChecking no" >> /etc/ssh/ssh_config && \
echo " UserKnownHostsFile /dev/null" >> /etc/ssh/ssh_config && \
echo "root:1234" | chpasswd
CMD [ "sh", "-c", "sudo service ssh start; bash"]

接下来,命令行执行:

# docker build -t ubuntu-ssh .

通过刚刚生成的镜像启动两台容器:

#  docker run -it --rm --name=yjt1 --net mynetwork --ip 172.20.1.1 --privileged ubuntu-ssh

# docker run -it --rm --name=yjt2 --net mynetwork --ip 172.20.1.2 --privileged ubuntu-ssh

进入到某一台容器执行 ssh yjt1 或者ssh  yjt2 如果能成功的免密登录,那说明OK

列:

进入到容器查看hosts文件:

看到没有,这里并没有做ip与主机的映射,接下来ssh 到yjt1 或者 yjt2 试试效果:

 

 

到此,docker容器互相免密就OK了,希望能帮助到需要的朋友。

转载于:https://www.cnblogs.com/yjt1993/p/9984764.html

你可能感兴趣的文章
【Android游戏开发之十】(优化处理)详细剖析Android Traceview 效率检视工具!分析程序运行速度!并讲解两种创建SDcard方式!...
查看>>
微信小程序之wx.navigateback往回携带参数
查看>>
陌陌和请吃饭之类的应用,你要是能玩转,那就厉害了
查看>>
递归的运行机制简单理解
查看>>
汉字转阿斯克马值
查看>>
Java 栈与堆简介
查看>>
【supervisord】部署单进程服务的利器
查看>>
zabbix oracle监控插件orabbix部署安装
查看>>
python3 通过qq 服务器 发送邮件
查看>>
java 多线程踩过的坑
查看>>
部署Replica Sets及查看相关配置
查看>>
倒序显示数组(从右往左)
查看>>
LeetCode2_Evaluate Reverse Polish Notation评估逆波兰表达式(栈)
查看>>
文献综述二:UML技术在行业资源平台系统建模中的应用
查看>>
阿里云服务器 linux下载 jdk
查看>>
Swift 学习 用 swift 调用 oc
查看>>
第三章 Python 的容器: 列表、元组、字典与集合
查看>>
微信小程序开发 -- 点击右上角实现转发功能
查看>>
问题解决-Failed to resolve: com.android.support.constraint:constraint-layout:1.0.0-alpha7
查看>>
与MS Project相关的两个项目
查看>>