Docker for MacをやめてVM(Ubuntu 16.04)の中でDockerを動かして開発する
はじめに
どうも@konchanSSです。今回はDocker for Macをやめて、VMを立ててその中でDockerを動かして開発を進めた話をしたいと思います。
なぜDocker for Macやめたのか
- Docker for Macのvolumeのマウントが重い
- マウント遅い問題を解決するためにDocker syncを導入したが、同期が不安定
Dockerにdocker-syncを導入して遅い問題を解決する - こんちゃんブログ
準備
今回VMの環境を構築するのにVirtualBoxとVagrantを使用するのでインストールしていきます。
- VirtualBoxのインストール
Downloads – Oracle VM VirtualBox
- Vagrantのインストール
Download - Vagrant by HashiCorp
VM(Ubuntu 16.04)設定のセットアップ
まずはVM用のディレクトリを用意しましょう。
先ほどいれた vagrant
コマンドを使ってインスタンスの初期化と生成をします。
$ vagrant init bento/ubuntu-16.04 $ vagrant up
上の vagrant init
をしたディレクトリに Vagrantfile が生成されます。
ゲストOSの設定はここに書いて再起動することで反映されるようになります。
インスタンス立ち上げ際のはまりポイント
ホストとゲスト間のGuestAdditionsのバージョンが違うとVMの起動やSSHできないことがあるので vagrant vbguest
入れておくと便利です。
詳しくはこちらの記事がわかりやすいので詰まった方は読んでみてください。
qiita.com
また、もともとVagrantもしくはVirtualBox使ってたよって人はバージョンが違うと怒られが発生したりするので最新のやつを入れときましょう。
GUIとデスクトップ環境の設定
Ubuntu GUIも必要なのでその設定を追加していきますが、 生成されたVagrantfileにはあらかじめGUIなどの設定がコメントアウトされた状態であるのでそのコメントアウトを外しましょう。
config.vm.provider "virtualbox" do |vb| # Display the VirtualBox GUI when booting the machine vb.gui = true # Customize the amount of memory on the VM: vb.memory = "1024" end
あとは vagrant ssh
コマンドを使ってVMの中に入り、Ubuntuのデスクトップ環境をインストールしましょう。
$ vagrant ssh $ sudo apt-get install ubuntu-desktop
Ubuntu大地に立つ
以上の設定が一通り終わったら再起動して動かしてみましょう。
$ vagrant reload $ vagrant up
UbuntuにDockerを入れる
Ubuntuを起動することがあとはDockerを入れるだけですね。
必要なパッケージのインストールします。
$ sudo apt-get update $ sudo apt-get install apt-transport-https ca-certificates
GPG鍵の取得します。(これないとapt-get updateできなくなる)
$ sudo apt-key adv \ --keyserver hkp://ha.pool.sks-keyservers.net:80 \ --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
依存パッケージのインストールします。
$ sudo apt-get update $ sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
sourceの更新します。
$ echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list
これでdockerのインストール準備が整ったのでインストールしていきます。
$ sudo apt-get update $ sudo apt-get install docker-engine
apt-get update
忘れるとうまくいかなかったりするのでコマンド叩いてみてください。
これでインストールが終わると docker
コマンドが使えるようになっています。
vagrant@vagrant:~$ docker Usage: docker COMMAND A self-sufficient runtime for containers ...
毎回docker叩く時にsudo打つのめんどくさい
グループに追加しておきましょう。
$ sudo usermod -aG docker $USER
最後に
これであとは好きなエディター入れたりして開発進めていけそうです!
本当はDocker for Macが快適に使えるようになると良いんですけどね〜