互联网服务 存储安装部署

创建支持ssh服务的镜像

我先docker pull 了一个基础镜像  centos71.yum install openssh-server
2.mkdir -p /var/run/sshd
3./usr/sbin/sshd -D &
会报could not  load host key to +目录
ssh-keygen -t rsa -f +目录  报几个写入几个
ssh-keygen -t rsa是用来生成host key的
4.修改ssh服务登陆的安全登陆配置,取消pam登陆限制:
sed -ri 's/session required pam_loginuid.so/#sessionn required pam_loginuid.so/g' /etc/pam.d/sshd
5.vi /run.sh
加入:#!/bin/bash
      /usr/sbin/sshd -D
6.退出容器 exit
7. docker commit +容器名:centos
问题是:

./usr/sbin/sshd -D &启动时,报错如下:
./usr/sbin/sshd -D &
[1] 4982
[root@centos ~]# -bash: ./usr/sbin/sshd: No such file or directory
参与6

5 同行回答

cherry4477 cherry4477 测试工程师 yaxin
解决了,用命令docker run -it -p 80:80 --net="bridge" 来映射端口就行 原来之前映射端口都失败了,需要指定--net显示全部
解决了,用命令docker run -it -p 80:80 --net="bridge" 来映射端口就行 原来之前映射端口都失败了,需要指定--net 收起
互联网服务 · 2015-05-20
浏览1402
dl528888 dl528888 系统运维工程师 游戏公司
curl 宿主机ip:映射容器80端口,看看报什么错误显示全部
curl 宿主机ip:映射容器80端口,看看报什么错误 收起
互联网服务 · 2015-05-20
浏览1375
leonis leonis 系统运维工程师 软件公司
回复 3# cherry4477     尝试更换DNS地址显示全部
回复 3# cherry4477


    尝试更换DNS地址 收起
软件开发 · 2015-05-20
浏览1459
cherry4477 cherry4477 测试工程师 yaxin
Apache在容器中curl 127.0.0.1:80  显示index.html内容如下:hello,docker!这样我认为Apache服务就是起来了啊,可是问题是:映射端口打开容器后,却提示域名无法解析是怎么回事啊?请教高手啊显示全部
Apache在容器中curl 127.0.0.1:80  显示index.html内容如下:



hello,docker!




这样我认为Apache服务就是起来了啊,可是问题是:
映射端口打开容器后,却提示域名无法解析是怎么回事啊?请教高手啊 收起
互联网服务 · 2015-05-20
浏览1418
leonis leonis 系统运维工程师 软件公司
给你贴个SSH的Dockerfile 你参考下DockerfileFROM centos:centos6 MAINTAINER Feng Honglin RUN yum -y install openssh-server epel-release &&     yum -y install pwgen &&     rm -f /etc/ssh/ssh_host_dsa_key /etc/ssh/ssh_host_rsa_key && &n...显示全部
给你贴个SSH的Dockerfile 你参考下
Dockerfile
FROM centos:centos6
MAINTAINER Feng Honglin 

RUN yum -y install openssh-server epel-release && 
    yum -y install pwgen && 
    rm -f /etc/ssh/ssh_host_dsa_key /etc/ssh/ssh_host_rsa_key && 
    ssh-keygen -q -N "" -t dsa -f /etc/ssh/ssh_host_dsa_key && 
    ssh-keygen -q -N "" -t rsa -f /etc/ssh/ssh_host_rsa_key && 
    sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config && 
    sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config

ADD set_root_pw.sh /set_root_pw.sh
ADD run.sh /run.sh
RUN chmod +x /*.sh

ENV AUTHORIZED_KEYS **None**

EXPOSE 22
CMD ["/run.sh"]
run.sh
#!/bin/bash

if [ "${AUTHORIZED_KEYS}" != "**None**" ]; then
    echo "=> Found authorized keys"
    mkdir -p /root/.ssh
    chmod 700 /root/.ssh
    touch /root/.ssh/authorized_keys
    chmod 600 /root/.ssh/authorized_keys
    IFS=set_root_pw.sh[code]#!/bin/bash

if [ -f /.root_pw_set ]; then
        echo "Root password already set!"
        exit 0
fi

PASS=${ROOT_PASS:-$(pwgen -s 12 1)}
_word=$( [ ${ROOT_PASS} ] && echo "preset" || echo "random" )
echo "=> Setting a ${_word} password to the root user"
echo "root:$PASS" | chpasswd

echo "=> Done!"
touch /.root_pw_set

echo "========================================================================"
echo "You can now connect to this CentOS container via SSH using:"
echo ""
echo "    ssh -p  root@"
echo "and enter the root password '$PASS' when prompted"
echo ""
echo "Please remember to change the above password as soon as possible!"
echo "========================================================================"
\n'
    arr=$(echo ${AUTHORIZED_KEYS} | tr "," "\n")
    for x in $arr
    do
        x=$(echo $x |sed -e 's/^ *//' -e 's/ *$//')
        cat /root/.ssh/authorized_keys | grep "$x" >/dev/null 2>&1
        if [ $? -ne 0 ]; then
            echo "=> Adding public key to /root/.ssh/authorized_keys: $x"
            echo "$x" >> /root/.ssh/authorized_keys
        fi
    done
fi

if [ ! -f /.root_pw_set ]; then
        /set_root_pw.sh
fi
exec /usr/sbin/sshd -D[/code]set_root_pw.sh[        DISCUZ_CODE_2        ] 收起
软件开发 · 2015-05-20
浏览1482

提问者

cherry4477
测试工程师 yaxin
评论78

相关问题

问题状态

  • 发布时间:2015-05-20
  • 关注会员:1 人
  • 问题浏览:5011
  • 最近回答:2015-05-20
  • X社区推广