码迷,mamicode.com
首页 > 系统相关 > 详细

docker新建ubuntu容器,设置ssh与物理机登陆

时间:2015-11-06 16:16:44      阅读:396      评论:0      收藏:0      [点我收藏+]

标签:

1. docker run -it ubuntu

2. 进入容器之后, 安装ssh服务:

    sudo apt-get install openssh-server

    有可能在安装之前需要配置软件源: sudo apt-get  update

3.启动 ssh 服务 : /usr/sbin/sshd

4.生成公钥和密钥,用于无密码登陆:

  ssh-keygen

  一路回车,将会在~/.ssh/文件夹中生成  :  id_rsa、id_rsa.pub

     将id_rsa.pub 通过scp传送到本机: scp ~/.ssh/id_rsa.pub winchua@192.168.1.105:~/pub_key_from_docker

5.切换回物理机, 将刚才传送的 pub_key_from_docker 写入 登陆用户的~/.ssh/authorized_keys 中

  root: sudo cat pub_key_from_docker /root/.ssh/authorized_keys

 

6.通过上面的设置 docker容器可以无密码登录到 物理机上面, 接下来可以将物理机中的java scp 到容器中

7.在物理机中, 默认的jdk位置可以通过 查看whereis java ,结合 ls -l 一层一层找出 jdk的位置,

在我的电脑中,jdk的位置在 /usr/lib/jvm/java-7-openjdk-amd64

8.切换回容器,将物理机中的jdk复制到容器中:

  scp -r winchua@192.168.1.105:/usr/lib/jvm/ /opt/

9.在容器中设置JAVA_HOME, PATH,等环境变量:

  sudo vi  /etc/profile

  在文件的最后添加

  export JAVA_HOME=/opt/jvm/java-7-openjdk-amd64

  export PATH=$JAVA_HOME/bin:$PATH

  :wq 保存退出

  source /etc/profile 使得环境变量立即生效

 

10.问题来了,当我使用测试的时候,java报错:

大致的意思是找不到共享的库文件(*.so文件) libjli.so

11.原因是,ubuntu在查找库文件的时候会根据/etc/ld.so.conf 文件中 的路径位置查找 库文件,不被路径包含的库文件,是不会被查找到的

通过命令:  find / -name "libjli.so"

查找到了 该文件位于 jdk中的lib 中

即: /opt/jvm/java-7-openjdk-amd64/jre/lib/amd64/jli/libjli.so

12. 要解决上面的问题,需要将11 中查找到的路径添加到 配置文件 /etc/ld.so.conf 文件中

使用vi 添加 /opt/jvm/java-7-openjdk-amd64/jre/lib/amd64

到文件的末尾

 

13.最后使用 /sbin/ldconfig -v 更新设置

然后 java 就可以运行了

 

docker新建ubuntu容器,设置ssh与物理机登陆

标签:

原文地址:http://www.cnblogs.com/winchua/p/4942837.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!