Dockerの構成Centos_ssh

2707 ワード

Dockerの構成Centos_ssh
最新のdocker p_を取得w_picpathはdocker pull centosを使用すればよい.docker run-i-t centos/bin/bashを使用して実行できます.当初は运行后に直接IPを配置して、SSHをスタートすればいいと思っていたが、半日もやっても间违っていて、N多过ちだった.後で探しましたが、Dockerは実はこのように遊んでいません.
だから総合して、やはり自分でDockerfileに基づいて新しいミラーを作成しましょう.まずDockerfileをコンパイルします.その内容は以下の通りです.
[root@cenots7 shencj]# cat Dockerfile
# centos:ssh
#
# VERSION               0.0.1
FROM centos
MAINTAINER shencj "[email protected]"
RUN yum install -y openssh openssh-server openssh-clients
RUN mkdir /var/run/sshd
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
RUN sed -i 's/GSSAPIAuthentication yes/GSSAPIAuthentication no/g' /etc/ssh/sshd_config
RUN /bin/echo 'root:123456' |chpasswd
RUN /bin/sed -i 's/.*session.*required.*pam_loginuid.so.*/session optional pam_loginuid.so/g' /etc/pam.d/sshd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" > /etc/default/local
EXPOSE 22
CMD /usr/sbin/sshd -D

注意:
ここの2つのssh-keygenを追加するには、sshを追加しないと起動が間違っています.ネット上の多くはUbuntuなので、当初はUのシステム通りにやっていましたが、全然成功しませんでした.理論的には/usr/sbin/sshd-Dはホストのrsakeyを作成しますが、UシステムはCシステムではできません.

    :docker build -t shencj/centos-ssh:v1 .
    :docker run -d --name centos_ssh -p 4423:22 shencj/centos-ssh:v1
[root@cenots7 shencj]# docker ps -a
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                  NAMES
677794c30ca9        shencj/centos-ssh:v1   "/bin/sh -c '/usr/sbi"   46 minutes ago      Up 46 minutes       0.0.0.0:4423->22/tcp   centos_ssh
  :
[root@cenots7 shencj]# ssh root@localhost -p 4423
The authenticity of host '[localhost]:4423 ([::1]:4423)' can't be established.
RSA key fingerprint is 1e:f3:90:63:dc:b8:91:e4:f2:e4:26:c9:35:03:00:82.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[localhost]:4423' (RSA) to the list of known hosts.
root@localhost's password:           #  :123456
[root@677794c30ca9 ~]#
[root@677794c30ca9 ~]# exit          #  
logout 
Connection to localhost closed. 
[root@cenots7 shencj]#

次の操作を行います.
コンテナでsshのプロファイルを変更すると/etc/ssh/sshd_config、構成を有効にするには、コンテナを再起動する必要があります
docker restart 677794c30ca9

コンテナの実行時に実行されるコマンドcmdは/usr/sbin/sshd-D(sshdサービスの起動)なので、変更されたssh構成が有効になります.