素敵なサムシングを独断と偏見で一方的に紹介するブログ(´・ω・`)

IT

【ローカル環境】Docker内のEC2インスタンスにSSH接続してみる

投稿日:

スポンサーリンク

336×280




EC2インスタンスを使いやすくセットアップ

以前、AWS公式EC2インスタンスのDockerイメージを利用して、ローカルマシンにコンテナを起動する手順を紹介しました。

しかし、初期の構成だと最低限の情報しか含まれていないので、sudoコマンドcurlコマンドlessコマンドなどのよく使うコマンドがインストールされていない状態です。

よりEC2インスタンスの環境に近づけるには、ある程度自分でモジュールを整えないと行けなそうですね。

なので、今回はDockerfileを作成し、最低限必要なモジュールをインストールし、かつSSH接続出来るようにするまでの手順を紹介致します。

手順

スポンサーリンク

336×280




前提

Point

  • 公式EC2インスタンスのDockerイメージpull済み

参考

Docker 初心者 | ssh で接続できるサーバーを立てる

Amazon LinuxのDockerコンテナを動かす

ディレクトリ構成

最終的には以下のようなディレクトリ構成になります。

SSH認証鍵の準備

まずは、SSH接続で利用する鍵を作成し、所定のディレクトリに配置します。
以下のコマンドを実行してください。

Dockerfileの作成

前回はコマンドでAmazonLinuxを起動して確認したので、今回はDockerfileを作成して起動しましょう。

Dockerfileの要点としては、以下を定義します。

Point

  • 公式EC2インスタンスのDockerイメージを指定
  • yumのパフォーマンス改善(4~5行目)
  • yumのインストール(8~11行目)
  • ユーザーの作成(14~16行目)
  • sudo権限の付与(19行目)
  • SSHの設定(22~25行目)
  • sshdの設定設定(28~30行目)
  • sshdの起動(32行目)
  • ポートの解放(34行目)
  • コンテナの起動(35行目)

イメージのビルド

では、上記Dockerfileを使ってビルドをしましょう。
以下のコマンドを実行してください。

最終的に以下のログが表示されればビルド成功です。

コンテナの起動

では、ビルドしたイメージを使ってコンテナを起動してみましょう。
以下のコマンドを実行してください。今回はローカルマシンの10000番ポートコンテナの22番ポートに繋げています。

SSH接続

コンテナの起動が完了したら、sshコマンドで接続してみましょう。
以下のコマンドで作成した秘密鍵を使って接続をしてみてください。

正常に接続されましたね。

各種コマンドの確認

では、最後にDockerfileでインストールしたモジュール(コマンド)を確認してみましょう。
今回はとりあえず初期状態では使えなかったsudoコマンドを確認してみます。
以下のコマンドを実行してください。

以下のようなログが出れば正常にコマンドが実行出来ています。

終わりに

これで本来のEC2インスタンスに近い状態の環境に設定することが出来ました。

SSH接続各種コマンドが使えることによって、よりリアルな検証操作を行うことが可能になりますので、是非皆さんも試していてください。

336×280




336×280




CATEGORIES & TAGS

IT, , , , , , , ,

blogenist

Author: blogenist