Windows環境で
Dockerを使う方法
2018/06/23 小川 昌吾(visor inc.)
自己紹介
sh-ogawa
■東京生まれ・東京育ち
■妻と娘(9カ月)とウサギの3人と1匹
■名古屋でWeb開発
■ドラクエ10 ver.4中
SNSアカウント
■Twitter:@kroyeeg ■GitHub:sh-ogawa
■SlideShare:sh-ogawa ■はてブロ:sh-ogawa
自己紹介
sh-ogawa
■東京生まれ・東京育ち
■妻と娘(9カ月)とウサギの3人と1匹
■名古屋でWeb開発
■ドラクエ10 ver.4中
SNSアカウント
■Twitter:@kroyeeg ■GitHub:sh-ogawa
■SlideShare:sh-ogawa ■はてブロ:sh-ogawa
ワールドカップで
寝不足です・・・
● Dockerとは?的なの
● WindowsでDockerする方法5
大体
コンテンツ
Dockerって何だ?
6 ● コンテナ型仮想環境
- 仮想マシン(Hyper-VやVMwareなど)はOSイメ
ージがホストOS上に丸ごと浮くため重いしブー
トのオーバーヘッドが非常に大きい
- コンテナはホストOSにプログラムが浮く形で
ブートのオーバーヘッドが非常に小さい
7 ● コンテナ型仮想環境
Dockerって何だ?
http://www.itmedia.co.jp/news/articles/1406/10/news049.html
コンテナ
(1ファイル)
Dockerって何だ?
8 ● Dockerの表面的な中身
OSのファイルシステムに含まれている基本ファイル
※/usr/binや/sbinの下など
作ったアプリや、使用するミドルウェアなど
Dockerって何だ?
9 ● メリットって?
- ≒実行可能プログラム
- 論理的にどこで動かしても同じ
- 1コンテナがサンドボックス的
- 複数のアプリを1つの物理に相
乗りさせやすい
Dockerのアーキテクチャ
10
http://docs.docker.jp/_images/architecture.png
runコマンドの範囲
Dockerのライフサイクル
11 image
build
Dockerfile
Container
create
running
start
stop
stop start
delete
rm
rm rm
rmi
rmi
Docker on Windowsる
12● DockerをWindowsで動かす方法
- Docker for Windowsで動かすアレホスト型仮想化ソフト
(VirtualBoxなど)が入
っていると動かない問
題がある
Docker on Windowsる
13● Hyper-Vとホスト型共存できない問題
- Docker for WindowsはHyper-Vで動く
- BIOSでHyper-V有効にしているときに、
ホスト型起動すると、Windowsがサイレント死
亡する(Windows10で実際に起きた)
- Hyper-Vも動けば良いけど、意味不明なエラーで
動かない
Docker on Windowsる
14● 復旧方法
- Hyper-V無効化
- regeditでレジストリキー大量に削除する復旧にかかった時間:
6h
Docker on Windowsる
15● どうするの?
- 僕たちにはVagrantがある!
Docker on Windowsる
16● Docker on Vagrant
Docker on Windowsる
17● Docker on Vagrantの自分的課題
- VMごとにDocker入れるのが単純に怠い
- Dockerを活かせてない感ある
アレが使えたらいい感じなんじゃないか?
Docker on Windowsる
18● アレ = Windows Subsystem for Linux
- VMごとにDocker入れるのが怠い ⇒ 解決
- Dockerを活かせてない感ある ⇒ 解決?
Docker on Windowsる
19● アレにDockerを入れてみた
- アレの入れ方はテキトーにググれば出てくる&
簡単なので省略(UbuntuとかでOK)
- wslコマンドでLinuxに入る
- sudo apt-get install -y docker ← ubuntu
Docker on Windowsる
20お、動いた
Docker on Windowsる
21 は?
Docker on Windowsる
22VMなのにWindowsモジュール見ている
感じ無理じゃない感溢れる
Docker on Windowsる
23どうやらこういうことらしい
(https://qiita.com/yoichiwo7/items/0b2aaa3a8c26ce8e87fe)
Docker on Windowsる
24● どうするの?
- ホスト型VMが入ってる場合は、
Docker on Vagrantを続けるしかない!
● ホスト型VM入れてる場合は、
Docker on Vagrant一択
● ホスト型使ってない場合は、
Docker for WindowsでもOK
● 今のところWSLでDockerは使
うメリットがなさげ
25
まとめ
26 THANKS!
Any questions?

Njug docker-20180623

Editor's Notes

  • #7 絵にすると次のページみたいな感じ
  • #8 Hyper-Vとの比較。 Hyper-Vはその上にOSが丸ごと乗るけど、DockerはDocker Engineの上にOSが来ない。
  • #9 アプリ屋・・・は、とりあえず表面的な中身判れば良いと思う。 インフラ屋は勿論それではダメ。イメージの差分管理だったり色々覚えてデプロイロールバックとかできるようになる必要がある
  • #10 雑に言うと、作ったアプリをファイルシステムごとパッケージングして実行することで、論理的にはどこで動かしても同じ実行環境になる。 本番にそのまま持って行ける!みたいなことを言ってるのはこれがあるから。
  • #11 クラ-サバ構成 ・dockerコマンド(client)叩くとdaemon(server)が処理する ・ホスト上に保存領域があって、docker hubから取った内容をキャッシュしたりできる
  • #12 他の状態もあるけど、使ったことないから除いてる。基本はコレ。
  • #13 絵にすると次のページみたいな感じ
  • #14 絵にすると次のページみたいな感じ
  • #15 ちなみに転職したての会社で業務中にやった
  • #16 絵にすると次のページみたいな感じ
  • #18 普段の開発はVagrantにプロジェクトディレクトリをマウントして開発しているので、 プロジェクトごとにVagrantが存在する。 なので、VMごとにDocker入れるのだるい。 Docker自体は作って壊すのを前提に使いたいから、全プロジェクトで共通で構わない。
  • #19 いちおー1VMに複数コンテナ立ち上がって良い感じになる感はある。気がした。
  • #20 入れてみた
  • #21 動いたから、docker seach叩いてみたら・・・
  • #22 動いてねぇ・・・
  • #24 よくよく考えると、bash on windowsだから、デーモンプロセスとか浮かないか、、というある種の納得感が。。