• docker中安装ssh服务


    系统:Debian Docker

    目标:在docker(debian系统)中安装ssh服务,实现远程登陆和控制docker

    步骤:

    初始状态:通过docker pull debian得到的一个debian的docker

    1,docker run -i -t debian /bin/bash 登录到docker的shell界面,方便之后的操作

    2,apt-get update: docker默认root登录,apt-get install 几乎不能用,因为需要更新一下源(可能是为了更轻量)

    3,apt-get install openssh-server 安装openssh(安装 vim等一切需要又没有的软件)

    4,更改/etc/ssh/sshd_config配置:PermitRootLogin withoutr-passwd 更改为 PermitRootLogin yes(需要root登录,一般docker都用root登录,否则有点麻烦,当然也可以不配置,这样必须新建一个普通用户用来登录)

                     UsePAM yes 更改为 UsePAM no (因为linux系统默认是使用pam管理登录的,使用ssh的配置更为方便)

    5,创建密码:passwd命令创建密码

    6,service ssh start 启动ssh服务进行验证:重新开启一个shell,通过ssh命令连接docker看看是否成功(ssh root@ip,这里的ip可以在docker里面使用ip addr命令查询;或者,在安装docker的Linux系统上使用docker inspect | grep IP 查询)。是,进行下面一步;否,查看问题原因。

    7,exit 退出(或者在原linux机器里面使用docker stop CONTAINER_ID)

    8,创建新的镜像:可以当做把这一步当做保存所有的设置,使用命令docker commit CONTAINER_ID debian/ssh创建镜像

    9,用刚保存的镜像,后台启动一个新的容器:docker run -d debian/ssh /etc/init.d/ssh start -D 或者 docker run -d debian/ssh /usr/sbin/sshd -D

     (解释一下:-d表示希望container在后台启动;-D表示希望ssh不要以守护进程启动,这样做的目的是保证container不退出)

      --------------> -d参数解释

        -----------> -D参数解释

    10,ssh root@ip进行远程登录

    思考与改进:

    1,每次需要知道container的ip才能进行登录有些麻烦,可以对容器进行端口映射,命令行

    docker run -d -p 50001:22 debian/ssh /usr/sbin/sshd -D

    启动之后直接 ssh root@localhost -p 50001 就可以登录了

    2,配置无密码登录

  • 相关阅读:
    每周必写
    每周必写
    每周必写
    感想及阅读内容
    阅读内容及感想
    每周感想和阅读内容
    每周感想及阅读内容
    每周感想及阅读内容
    分答
    每周感想及阅读内容
  • 原文地址:https://www.cnblogs.com/chen-kh/p/5986242.html
Copyright © 2020-2023  润新知