Amazon LinuxをDockerで動かす

AWSと言えばクラスメソッドさん、こちらの手順でほぼほぼ出来た。さすが!

Docker Meetup Tokyo #2でLTしてきた:「Docker+serverspecで作るconfigspec CI」 #dockerjp | Developers.IO

これでローカルでAmazon Linux固有環境のテストもできる〜(∩´∀`)∩ワーイ

あ、ただDockerfileに以下も追加しないとSSHがつながらなかったのでご注意を。

# diff Dockerfile.org Dockerfile
12a13,14
> RUN chmod 600 /home/ec2-user/.ssh/authorized_keys
> RUN chown ec2-user:ec2-user /home/ec2-user/.ssh/authorized_keys

イメージの接続確認

ビルドしたイメージは、以下の手順で確認できます。

  • sshd起動して待ち受ける
# docker run -d -p 22 local/amznssh /usr/sbin/sshd -D
b1313f8ab7c8bfd5b0b7d5c23b6e9ed2770102adf32fe8e0dcf3799978f7df2a
  • 起動したコンテナを確認
# docker ps
CONTAINER ID        IMAGE                  COMMAND               CREATED             STATUS              PORTS                   NAMES
b1313f8ab7c8        local/amznssh:latest   "/usr/sbin/sshd -D"   2 seconds ago       Up 2 seconds        0.0.0.0:49153->22/tcp   pensive_torvalds
  • SSHで接続してみる
# ssh -i xxx.pem -p 49153 ec2-user@localhost

イメージの保存

イメージは以下の方法で保存できます。

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
local/amznssh       latest              ddc2dc72ebd1        37 minutes ago      964.8 MB
local/amzn          latest              8cf4161c6154        About an hour ago   964.8 MB

# docker save ddc2dc72ebd1 > amzn201409.tar

あとはS3にアップロードするなり、ローカルに落とすなり。

イメージのimport

# cat amzn201409.tar | docker import - local/amzn:2014.09

で!