LoginSignup
17
19

More than 5 years have passed since last update.

EC2にDockerを入れてSSH接続する方法

Last updated at Posted at 2014-12-07

この投稿について

DockerのホストOSにAWSのEC2(Ubuntu)、ゲストOSにCentOSという構成で、SSH接続可能なコンテナを立ち上げた際のメモ

EC2の準備

今回はAWSの「Community AMIs」からUbuntuの64ビット(ami-e74b60e6)を選んで使用。

「Configure Instance Details」のステップで、「Advanced Details」をクリックして、以下のように入力すると、勝手にDockerがインストールされた状態で立ち上げてくれる。

Dockerfileの設定

FROM centos

# Install
RUN yum update -y
RUN yum install -y sudo
RUN yum install -y passwd
RUN yum install -y openssh-server
RUN yum install -y openssh-clients

RUN /usr/bin/ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -C '' -N ''
RUN /usr/bin/ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -C '' -N ''
RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config
RUN sed -ri 's/#UsePAM no/UsePAM no/g' /etc/ssh/sshd_config

RUN echo 'root:root' |chpasswd
RUN sed -ri 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/ssh/sshd_config

EXPOSE 22

Dockerの実行

まずはビルドしてイメージを作成

$ sudo docker build -t test-sshd .

イメージが出来ているか確認

$ sudo docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
test-sshd           latest              9349fc717edb        1 minutes ago      353.6 MB

次にイメージを実行して、コンテナ作成。

$ sudo docker run -d -p 22 test-sshd /usr/sbin/sshd -D

ここでのポイントは、

  • sshdをバックグラウンドで起動
  • 22ポートをポートフォワーディング

次に、起動中のコンテナを確認する

$ sudo docker ps

CONTAINER ID        IMAGE               COMMAND               CREATED             STATUS              PORTS                   NAMES
2dfaa7ed4bce        sshd:latest         "/usr/sbin/sshd -D"   14 minutes ago      Up 14 minutes       0.0.0.0:49163->22/tcp   cocky_archimedes

49163番ポートが22番ポートにポートフォワーディングされているのが確認できる。

次にifconfigでゲストOSのipを調べる

$ ifconfig

docker0   Link encap:Ethernet  HWaddr 56:84:7a:fe:97:99  
          inet addr:172.17.42.1  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::5484:7aff:fefe:9799/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:9001  Metric:1
          RX packets:16796 errors:0 dropped:0 overruns:0 frame:0
          TX packets:19160 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:992133 (992.1 KB)  TX bytes:111073684 (111.0 MB)

次のようにすればログインできるはず!(パスワードはDockerfileで設定したようにroot

$ ssh root@172.17.42.1 -p 49163
17
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
19