http://www.conoha.jp/
まえがき ConoHaは一台の物理サーバーの上で何台かの仮想 サーバーが動く VPS です でも VPS って自由度が高い だけに設定するところが多すぎて面倒ですね VPSの中に さらに小さな仮想サーバーを立ち上げて 用途別に動か せたら便利なのに こういう人に最適なのが サーバー の中に コンテナ という 子サーバー を立てるコンテナ型 仮想化です そのためのパッケージとして近ごろ注目されて いるのが Docker というもの これを使うと ConoHaの サーバーに中にさらにドカドカとサーバーを立てることが y ω ね 親父ギャグや できてしまいます ちょっと楽しそうですね あなたもやって みませんか 目 標 Dockerでコンテナを立ち上げる DockerfileでWebサーバーのイメージ コンテナをつくる 前 提 とりあえず ConoHaでVPSを1 台契約済みであること [ 標準 OS] CentOS 6.4 64bit を使用していることを前提にご説明します Webサーバーのインストール程度はできる知識がある
# rpm --import http://dl.fedoraproject.org/pub/epel/rpm-gpg-key-epel-6 # yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-rele ase-6-8.noarch.rpm # yum -y install docker-io # service docker start # docker pull centos Pulling repository centos 539c0211cd76: Download complete # docker images REPOSITORY centos centos TAG 6.4 latest IMAGE ID 539c0211cd76 539c0211cd76 CREATED 10 months ago 10 months ago VIRTUAL SIZE 300.6 MB 300.6 MB # echo "alias dl='docker ps -l -q'" >> ~/.bashrc
# docker run -i -t centos /bin/bash bash-4.1# bash-4.1# cat /etc/redhat-release CentOS release 6.4 (Final) bash-4.1# ping www.yahoo.co.jp PING www.g.yahoo.co.jp (124.83.203.233) 56(84) bytes of data. 64 bytes from f8.top.vip.ogk.yahoo.co.jp (124.83.203.233): icmp_seq=1 ttl=51 time=12.9 ms bash-4.1# exit # docker run -i -t centos /bin/bash Docker # Docker # telnet localhost 80 bash: telnet: command not found 女 房 との 出 会 いを 思 い 出 すわ( έ` )
Docker # yum -y install telnet Docker # exit # docker commit `dl` conoha/telnet df287aa8b65f8152f6f928f07eb210f8d0c916a8e8ba7170d069acf61990bb2c # docker images REPOSITORY TAG conoha/telnet latest centos 6.4 centos latest IMAGE ID df287aa8b65f 539c0211cd76 539c0211cd76 CREATED About a minute ago 10 months ago 10 months ago VIRTUAL SIZE 340.7 MB 300.6 MB 300.6 MB # docker run -i -t conoha/telnet /bin/bash Docker # telnet localhost 80 Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused Docker # yum -y install httpd Docker # exit # docker commit `dl` conoha/apache # docker run -p 80:80 -i -t conoha/apache /usr/sbin/httpd -D FOREGROUND # bg
途 中 で 改 行 されてんの 気 にせんといてぇ ( з` ) # docker ps CONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES c5f373ca398c conoha/apache:latest /usr/sbin/httpd -D F 50 seconds ago Up 49 seconds 0.0.0.0:80->80/tcp compassionate_fermat # docker kill compassionate_fermat # mkdir -p ~/docker/anotherapache # vi ~/docker/anotherapache/dockerfile FROM centos RUN yum -y install telnet RUN yum -y install httpd CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"] # docker build -t conoha/anotherapache ~/docker/apache Successfully built 36a0fe96f3d6 # docker run -p 80:80 -d conoha/anotherapache # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c9a1370f4e1d conoha/anotherapache:latest /usr/sbin/httpd -D F 5 seconds ago Up 4 seconds 0.0.0.0:80->80/tcp backstabbing_poincare ればできるやないか( ω )y
IV. DockerとConoHaの意外な相性 1 Dockerのなにがうれしい さて 簡単にDockerの使い方を見てきましたが いったいどんなところがうれしいので しょうか それはなんといっても 最後に触れた Dockerfile のような定義さえ書けば どんな環境でも 同じサーバー コンテナ が一瞬で構築できてしまう ということです 古くはLAMP環境の提唱 最近では vagrant の人気で 開発用のサーバー環境を持ち 歩く のが当たり前になっていますが Dockerはそれをさらに抽象化し ポータブルにして しまいます さらに詳しい応用のしかたは Dockerの開発元サイト http://www.docker.io/ を 参照してみるとよいでしょう ω `)ノ あっ 九時ら 2 ConoHaの17個のIPv6アドレスを活かせる Dockerでいくつものコンテナを立ち上げても IPアドレスは親サーバーの1つを共有する しかありません しかし ご存知のとおり ConoHaのVPSには無料で17個のIPv6アドレス が付属しています 多少ネットワークの設定が必要ですが 各コンテナに専用のアドレスを 割り振るというぜいたくな使い方ができます 実際に試してくださった方がいらっしゃるので 以下のページを参考にチャレンジしてみてはいかがでしょう ConoHaで使えるIPv6アドレスをDockerで有効活用する nabekenさん http://projects.tsuntsun.net/~nabeken/diary/sysadmin/conoha-docker-ipv6.html
VPSは まだまだ楽しくなる http://www.conoha.jp/ ConoHaの薄い本 vol.3 ConoHa+Dockerでサーバーをドカドカ立てよう 2014年2月28日 初版発行 編集 ConoHaの中の人たち 発行者 児玉公宏 発行所 GMOインターネット株式会社 住所 東京都渋谷区桜丘町26-1セルリアンタワー TEL: 03-6702-0428