最近よく聞くVagrantとかDockerとか、スルーしてたけど触っといたほうがいいかなと思って、試してみた。
Vagrantのインストール
Vagrantは、なんかVirtualBoxのVMとかの構成を勝手にやってくれるやつ。
ここから適当なのをダウンロードしてインストールする。
Download - Vagrant by HashiCorp
VirtualBoxも必要なので、インストールしておく
Downloads – Oracle VM VirtualBox
DockerはLinuxでしか動かないので、ふつうのパソコンの場合はVM経由で使う必要があって、それでVirtualBoxとか使うと思うけど、そんときにVagrantが便利、という話。
VagrantでUbuntuを起動
なんか、こんな感じの内容でどこかにVagrantfileという名前のファイルを作る。
Vagrant.configure(2) do |config| config.vm.box = "ubuntu/trusty64" config.vm.provision "docker" config.vm.network "private_network", ip: "126.0.56.101" config.vm.provider "vertualbox" do |vb| vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"] vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] end end
IPが指定されてなかったり、DNSが効いてなかったり、いろいろハマった。
ここにDockerも仕込んでおく。
そのディレクトリにいって
> vagrant up
とするとVMが起動。
VirtualBoxマネージャで確認してみます。
おぉ!
> vagrant ssh
とすると、sshできる。お手軽。
influxdbとnginxを起動するDockerfile
なんか、Dockerは最終的にコマンドをひとつしか実行できないので、こんなshファイルを作っておきます。
場所は、Vagrantfileの下あたり。dockerとかディレクトリ作っておくのがいいと思う。
#!/bin/sh /usr/sbin/nginx -g "daemon off;" & influxd
改行コードがLFじゃないと怒られるので注意。ハマった。
&とかつけてるのがキモい。たぶん、docker composeとか使うのが大人。
そして、同じところにDockerfileという名前でこんなのを作ります。
FROM ubuntu:latest EXPOSE 8086 EXPOSE 8083 EXPOSE 80 RUN apt-get install -y wget RUN wget https://s3.amazonaws.com/influxdb/influxdb_0.10.3-1_amd64.deb RUN dpkg -i influxdb_0.10.3-1_amd64.deb RUN apt-get install -y nginx ADD run.sh /run.sh RUN chmod +x /run.sh CMD ["/run.sh"]
Dockerビルドして実行
そしたら、ビルドして実行します。
VagrantにSSHします。Vagrantfileのあるところが/vagrantにマウントされてるので、そこからdockerfileを置いたところに行きます。
んで、ビルド
$ docker build -t kishida/influx-nginx .
うまくいって、Successfully builtって出たら実行
$ docker run -p 80:80 -p 8083:8083 -p 8086:8086 --name influx-nginx kishida/influx-nginx
Vagrantで指定してた126.0.56.101にブラウザでつないでみる。
おぉ、nginx動いてる。
終了
起動のときに--nameで指定した名前で終了
$ docker stop influx-nginx
もう一回起動するときはstart
$ docker start influx-nginx
感想
ようわからんけど、なんか楽しさがある。
しかし、VagrantもDockerも、それ自体を使うだけなら難しくないけど、使いこなそうとするとシェル力が問われる気がした。あとはhubをどう使いこなすかとか。
まあでも、ぼくはLinux力とかシェル力ないほうだけど、じんわりといろいろ知ってるんだな、という気分になれてよかった。
Docker 実践ガイド (impress top gear)
- 作者: 古賀政純
- 出版社/メーカー: インプレス
- 発売日: 2015/12/17
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る