DockerfileによるSSHサービスをサポートするCentOSミラーの作成

4178 ワード

昨日、「SSHサービスをサポートするCentOSミラーを作成する」という記事を書きました.コマンドを使って、SSHサービスをサポートするCentosミラーを一歩一歩新規作成する方法を紹介しました.しかし、生産環境のプロセス化、標準化、迅速な生成の需要を満たすことはできない.そのため、Dockerfileを使用して必要なミラーを生成する必要があります.これにより、どの環境でもdocker buildを使用して高速、標準、エラーのないロットでそっくりのミラーを生成することができ、管理者が迅速に配置できるようになります.具体的な手順は次のとおりです.
1、/rootディレクトリの下でsshd_を新規作成するcentosディレクトリはDockerfileおよびその他の関連ファイルを格納するために使用されます.
mkdir sshd_centos
#     
cd sshd_centos

2、コンテナでsshdサービスを開始するスクリプトを新規作成する
vim run.sh

スクリプトの内容は次のとおりです.
#!/bin/bash
/usr/sbin/sshd -D

3、ホストホスト上でRSA鍵を生成する
ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key

生成された鍵をsshd_にコピーしますcentosディレクトリ
cp /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_rsa_key.pub /root/sshd_centos
cat ssh_host_rsa_key.pub>authorized_keys

5、/root/sshd_centosディレクトリの下にDockerfileファイルを新規作成
vim Dockerfile

Dockerfileコンテンツ:
#       centos     
FROM centos
MAINTAINER by cmzsteven (changmingzhi@163.com)
#    
RUN yum -y update
#  openssh-server
RUN yum -y install openssh-server
#  /etc/ssh/sshd_config
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
#        /etc/ssh/   
ADD ssh_host_rsa_key /etc/ssh/ssh_host_rsa_key
ADD ssh_host_rsa_key.pub /etc/ssh/ssh_host_rsa_key.pub
RUN mkdir -p /root/.ssh
ADD authorized_keys /root/.ssh/authorized_keys
# ssh         /usr/local/sbin   ,      755
ADD run.sh /usr/local/sbin/run.sh
RUN chmod 755 /usr/local/sbin/run.sh
#  root   147258
RUN echo "root:147258"|chpasswd
#     22  
EXPOSE 22
#    ,  sshd  
CMD ["/usr/local/sbin/run.sh"]

ほとんどのコマンドは「SSHサービスをサポートするCentOSミラーを作成する」で紹介されていますが、Dockerfileをshell角本と想像することができます.ほとんどの内容はshellコマンドです.
このとき/root/sshd_centosディレクトリには、次のファイルが存在するはずです.
Dockerfile
run.sh
ssh_host_rsa_key
ssh_host_rsa_key.pub

6、docker buildを使用してミラーファイルを生成する
docker build -t sshd:dockerfile .

注意コマンドの一番後ろには「.」があります.これは、Dockerfileが現在のディレクトリの下にあることを示しています.実行が完了すると、最後に表示されます.
Successfully built 411d5fb16366

最後の文字列はContainer IDで、生成されたミラーを表示します.
docker images

実行結果
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
sshd                dockerfile          411d5fb16366        9 minutes ago       278 MB

7、新しく作成したミラーで新しいコンテナを作成する
docker run -d -p 10022:22 sshd:dockerfile /usr/local/sbin/run.sh

ホストの10022ポートをコンテナの22ポートにマッピングし、sshdサービスを開始します.sshツールを使用して、ホストの10022ポートをリモートで介してコンテナにアクセスできるようになりました.