zoukankan      html  css  js  c++  java
  • docker随笔3--ssh服务

    docker镜像搭建以后很多时候并不是本机操作而是直接链接docke,所以需要ssh服务。

    下面是基于ubuntu的操作。

    1. 拉取镜像并进入容器

    docker pull ubuntu:16.04
    docker run -it ubuntu /bin/bash

    2.检测是否有ssh服务

    sshd  #提示没有sshd服务
    apt-get update #第一次进入拉取的容器需要update,因为源默认是关闭的
    apt-get install  openssh-server #安装ssh服务

    如果嫌下载的速度慢可以配置镜像的软件源。

    sshd  #再次执行ssh命令

    提示:sshd re-exec requires execution with an absolute path

    正常启动ssh服务,需要目录/var/run/sshd

    mkdir -p /var/run/sshd
    
    /usr/sbin/sshd -D &

    检测ssh的22端口是否被监听

    netstat -tunlp
    #提示bash: netstat: command not found
    #安装: apt-get install net-tools

     3.修改ssh登录限制,取消pam限制:

    注释:session required pam_loginuid.so

    sed -ri 's/session required pam_loginuid.so/#session required pam_loginuid.so/g' /etc/pam.d/sshd 

    4.创建公钥:

    ssh-keygen -t rsa #在宿主机创建公钥,将其复制

    在容器中创建:

    vim  /root/.ssh/authorized_keys

    并将复制好的宿主公钥传入其中。

    5.创建开机自动启动的脚本。

    vim  /run.sh
    chmod +x run.sh

    run.sh里面的内容是:

    #!/bin/bash 
    /usr/sbin/sshd -D

    保存后执行:exit

    生成新的镜像:

    docker commit  9145  sshd/ubuntu  ubuntu 

    开放端口给外部访问

    docker run -p  100081:22 -d sshd/ubuntu  /run.sh

    检测是否成功:

    docker ps 

    如果没有的话查看日志:

    docker logs -f  container_id(容器的id)
  • 相关阅读:
    10月23日总结
    10月22日总结
    10月21日总结
    使用Sklearn进行股票异常分析
    10月20日总结
    10月19日总结
    10月18日总结
    CF482E ELCA
    ERROR: Error installing mysql2: ERROR: Failed to build gem native extension [@Ubuntu 15.04]
    在Deepin 20.2系统中换源并全新图解安装MySQL数据库
  • 原文地址:https://www.cnblogs.com/callmelx/p/11039121.html
Copyright © 2011-2022 走看看