Docker CentOS7イメージでsshdを起動

Facebooktwittermail

Dockerのネットワークを勉強するためにCentOS7イメージでsshdを起動させてみました。
様々なサイトを参考にさせて頂いて外部からssh接続ができました。

環境
・CentOS Linux release 7.3.1611 (Core)
・Kernel: 3.10.0-514.16.1.el7.x86_64
・Docker version 17.03.1-ce, build c6d412e

Docker-ceをインストールするとネットワークが追加されます。
docker0,vethb7deb96@if12,vethcd238da@if30がDocker用仮想ネットワークのようです。

CentOS7のDockerイメージを使用してコンテナを作成、起動してアタッチします。
ipコマンドが無いのでインストールしてipアドレスを確認すると172.17.0.4/16が割り当てられていました。

特に何も設定していないのですが、yum installも可能なのでコンテナ内から外部へNATされているのでしょうか。

さてsshdですがコンテナ作成で特権レベルとポートマッピングを指定する必要がありました。
提供されているCentOS7イメージ(もしかしてコンテナ?)はセキュリティ上、いろいろと制限が掛けられているようでsystemdもそのひとつのようです。

通常でコンテナを起動させるとエラーでサービスが起動できません。

--privilegedで特権レベルでコンテナを起動、 -p 60022:22でホストの60022をコンテナの22にポートマッピングです。
ホストのポートとコンテナのポートの関連付けだけなのでホストでsshdが起動していなければ22:22でもいいと思います。

インタラクティブでcentos7-sshdのbashを実行します。

sshdをインストール

sshdの起動

ユーザーの作成

これで準備が整ったので外部からコンテナ(centos7-sshd)にssh接続してみます。
ホストIP:60022に接続することになります。


先程作成したユーザー:guest01でログインできると思います。


Leave a Reply