Docker事始め - ハンズオン勉強会+α

More than 3 years have passed since last update.


はじめに

クラウドを渡り歩け!さくら×ニフティ合同ハンズオン勉強会!!」に参加してきました。「家に帰るまでが遠足」という言葉があり、「アウトプットするまでが勉強会」という言葉もあったはずなので自分の整理も兼ねて記載します。

# 最近あんまり聞かなくなった…?


やったこと

ハンズオン内容はこちらを参照してください。

基本的には記載内容通りの手順を行えばDockerの一通りの操作はできると思います。

# 実際に手を動かして試してみるがコンセプトのようなのでDockerの技術要素とか知らなくてもできるのが良いですねー。

コレ+感想だけだと内容が無いので…+αで試したことを記載します。


ぷらすあるふぁ

さくらインターネット様よりさくらのクラウドの期間限定無料クーポンをいただいた&さくらのクラウドがCoreOSに対応したということなので以下を試してみました。

1.オンプレのVMwareESXi上にDocker on CentOSをセットアップし、CentOSコンテナを構築する

2.CentOSコンテナ上で静的コンテンツを返すイメージを作成しexportする

3.さくらのクラウド上にDocker on CoreOSをセットアップする

4.2でexportしたコンテナイメージを3にimportする

5.importしたコンテナイメージから起動する

6.静的コンテンツが想定通りに出力されるかどうか確認する


やってみる


バージョン構成


オンプレ上のDocker on CentOS

# uname -a

Linux hostname 2.6.32-431.20.3.el6.x86_64 #1 SMP Thu Jun 19 21:14:45 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
# cat /etc/issue
CentOS release 6.5 (Final)
# docker version
Client version: 1.0.0
Client API version: 1.12
Go version (client): go1.2.2
Git commit (client): 63fe64c/1.0.0
Server version: 1.0.0
Server API version: 1.12
Go version (server): go1.2.2
Git commit (server): 63fe64c/1.0.0


さくらのクラウド上のDocker on CentOS

CoreOS Version : CoreOS 379.3.0

$ uname -a
Linux hostname 3.15.5+ #2 SMP Wed Jul 16 02:42:54 UTC 2014 x86_64 Intel(R) Xeon(R) CPU E5-2640 0 @ 2.50GHz GenuineIntel GNU/Linux
$ docker version
Client version: 1.1.1
Client API version: 1.13
Go version (client): go1.2
Git commit (client): dc62f3c
Server version: 1.1.1
Server API version: 1.13
Go version (server): go1.2
Git commit (server): dc62f3c


静的コンテンツを返却するコンテナ作成とエクスポートとアップロード

ハンズオン資料の7を参考にコンテナを作成する。

ハンズオン資料の8、9を参考にコンテナ変更内容をコミット、エクスポートしCoreOSにアップロードする。

# /tmp/配下にsakura-static.tarという名前でアップロード


CoreOS側作業

サーバ作成時にアーカイブ選択->CoreOS、任意のパスワードを指定するだけでOKです。

ユーザ名:core パスワード:任意で指定したものでログイン可能

# CoreOSの場合、標準でDockerがインストールされているため何もしなくても使えます。

$ cat /tmp/sakura-static.tar | docker import - static:sakura

c64feefc1370445231786ae82ca8eba7e9e63897f5a8e2a2e3242a21a5f38806
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
static sakura c64feefc1370 About a minute ago 266.4 MB
$ docker run -p 80:80 -t -i static:sakura /bin/bash
bash-4.1#
bash-4.1# service httpd start
# Ctrl+p、Ctrl+qで抜ける
# 想定通りの静的コンテンツが出力されることを確認する
$ curl http://localhost/
sakura


雑感


  • オンプレ-クラウド間、クラウド-クラウド間で問題なくコンテナのexport/importができた

  • 移行に関してP2V、V2Vに比べると格段にC2C(Container To Container)のが簡単

  • C2Cが簡単ということはアプリのデプロイ等にも恩恵がある(ポータビリティ)

  • ハイパーバイザー上に構築からハイパーバイザー上のコンテナ上に構築という流れになりそう

  • 上記のような流れになれば基本的な機能についてのクラウドロックインは考えなくてもよくなりそう

  • DBサーバ用途には向かないと思うので、DBサーバは各クラウドのDBサーバ専用サービスを利用すればよい

  • コンテナの配置について考える必要がある(リソース/パフォーマンス)

  • 監視方法は考える必要がある

  • ログ取得方法は考える必要がある

  • 複数Dockerを一元的に管理できるようなものがあると今以上に加速するはず

  • CoreOS、etcd、fleet、systemdなどの知識も必要になってくる

# 全体的に既に言われていることではありますが。。。


最後に

このような勉強会を企画していただいたニフティ様、さくらインターネット様、クリエーションライン様ありがとうございました。