您的位置:首页 > 运维架构 > Docker

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

2015-11-06 15:48 656 查看
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 就可以运行了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: