DockerfileによるSSHサービスをサポートするCentOSミラーの作成
昨日、「SSHサービスをサポートするCentOSミラーを作成する」という記事を書きました.コマンドを使って、SSHサービスをサポートするCentosミラーを一歩一歩新規作成する方法を紹介しました.しかし、生産環境のプロセス化、標準化、迅速な生成の需要を満たすことはできない.そのため、Dockerfileを使用して必要なミラーを生成する必要があります.これにより、どの環境でもdocker buildを使用して高速、標準、エラーのないロットでそっくりのミラーを生成することができ、管理者が迅速に配置できるようになります.具体的な手順は次のとおりです.
1、/rootディレクトリの下でsshd_を新規作成するcentosディレクトリはDockerfileおよびその他の関連ファイルを格納するために使用されます.
2、コンテナでsshdサービスを開始するスクリプトを新規作成する
スクリプトの内容は次のとおりです.
3、ホストホスト上でRSA鍵を生成する
生成された鍵をsshd_にコピーしますcentosディレクトリ
5、/root/sshd_centosディレクトリの下にDockerfileファイルを新規作成
Dockerfileコンテンツ:
ほとんどのコマンドは「SSHサービスをサポートするCentOSミラーを作成する」で紹介されていますが、Dockerfileをshell角本と想像することができます.ほとんどの内容はshellコマンドです.
このとき/root/sshd_centosディレクトリには、次のファイルが存在するはずです.
6、docker buildを使用してミラーファイルを生成する
注意コマンドの一番後ろには「.」があります.これは、Dockerfileが現在のディレクトリの下にあることを示しています.実行が完了すると、最後に表示されます.
最後の文字列はContainer IDで、生成されたミラーを表示します.
実行結果
7、新しく作成したミラーで新しいコンテナを作成する
ホストの10022ポートをコンテナの22ポートにマッピングし、sshdサービスを開始します.sshツールを使用して、ホストの10022ポートをリモートで介してコンテナにアクセスできるようになりました.
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ポートをリモートで介してコンテナにアクセスできるようになりました.