Vagrant  + CoreOS + Docker が今時の開発環境らしい。構築は、めちゃ簡単！

構築がめちゃくちゃ簡単なので超オススメ！！
正直Dockerに関しては、初めからCoreOSにインストールされているため
インストールする必要もない。(Docker-Composeはインストールしないといけない)

## Vagrantの環境構築
これは、いろんな人がやってるので公式のリンクだけで省きます。
[Vagrant公式](https://www.vagrantup.com)

インストールできると次のコマンドが効きます。
`$ vagrant --version`

## CoreOSのダウンロード
[CoreOSのGithub](https://github.com/coreos/coreos-vagrant)
ここに載ってるやつでクローン！
`$ git clone https://github.com/coreos/coreos-vagrant/`
`$ cd coreos-vagrant`

いいね！ここまでドキュメント通り
よし！次の`vagrant up`で俺もモダンな開発環境の仲間入りだ！！
`$ vagrant up`

```
Installing plugins: vagrant-ignition
Installing plugins: vagrant-ignition
Installing plugins: vagrant-ignition
Installing plugins: vagrant-ignition
...
Exec error: fork/exec /opt/vagrant/embedded/bin/ruby: argument list too long
Installation of one or more plugins has failed. Aborting.
Installation of one or more plugins has failed. Aborting.
Installation of one or more plugins has failed. Aborting.
...
```
ん？どうやらなんか大量にエラーとは書いてないですがプラグインが明らかに足りなさそうw

## 足りないモジュールインストール

その場で
`$ vagrant plugin install vagrant-ignition`
やっても同じような表示が出てきます。
`Installing plugins: vagrant-ignition...ry`

一つ階層を戻ってインストールしてみよう。
`$ cd ../`
`$ vagrant plugin install vagrant-ignition`

```
Installing the 'vagrant-ignition' plugin. This can take a few minutes...
Fetching: vagrant-ignition-0.0.3.gem (100%)
Installed the plugin 'vagrant-ignition (0.0.3)'!
```
いけました！！

そして今度こそ！！
`$ vagrant up`

```
Bringing machine 'core-01' up with 'virtualbox' provider...
==> core-01: Box 'coreos-alpha' could not be found. Attempting to find and install...
    core-01: Box Provider: virtualbox
    core-01: Box Version: >= 0
==> core-01: Loading metadata for box 'https://alpha.release.core-os.net/amd64-usr/current/coreos_production_vagrant_virtualbox.json'
    core-01: URL: https://alpha.release.core-os.net/amd64-usr/current/coreos_production_vagrant_virtualbox.json
==> core-01: Adding box 'coreos-alpha' (v1911.0.2) for provider: virtualbox
    core-01: Downloading: https://alpha.release.core-os.net/amd64-usr/1911.0.2/coreos_production_vagrant_virtualbox.box
    core-01: Calculating and comparing box checksum...
==> core-01: Successfully added box 'coreos-alpha' (v1911.0.2) for 'virtualbox'!
...
```
いけました！！！

## CoreOSに「Login」
`$ vagrant ssh`

```
Last login: Thu Sep 27 12:20:45 UTC 2018 from 10.0.2.2 on ssh
Container Linux by CoreOS alpha (1911.0.2)
core@core-01 ~ $
```
キターーーーーー٩( 'ω' )وーーーーーー！

ついでに本当にdockerが入ってるか確認

`core@ docker --version`

```
Docker version 18.06.1-ce, build e68fc7a
````

## おきまりの「Hello World」

`$ docker run hello-world`

```
...
Hello from Docker!
...
```
いけてます！！

これで私もモダンな環境構築の仲間入りだーい！！！
Dockerバンバン作って壊しまくるぞー！おぉー！！٩( ᐛ )و

## おまけ
ついでに`docker-compose`が必要になりそうなのでインストールしておきます
[https://github.com/docker/compose/releases/latest](https://github.com/docker/compose/releases/latest)
ここで一番最新のversionがreleasesの`latest`調べられるらしい。
今(2018/09/27)は、1.22.0らしい
コマンドは、以下なんだけど
~~``$ sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose``~~

### CoreOSの場合`/usr`以下はread onlyなため`/opt/bin`に入れる。
`$ sudo mkdir -p /opt/bin`
``$ sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /opt/bin/docker-compose``
次にコマンドの実行を許可して終わり
`$ sudo chmod +x /opt/bin/docker-compose`
`$ docker-compose --version`
やっと終わりました...。

**お疲れ様です！！**
## 参考
[CoreOSにdocker-composeを導入](https://qiita.com/hiroseabook/items/50bda4b0fd85ab228c6d)