basyura's blog

あしたになったらほんきだす。

Docker 入門

ずっと気になっていたのだけどようやく着手。これは便利だ (みんな知ってる)。

「docker」でググって入門を調べてみたりしたのだけど最初から本家を見ればよかった。ただ、2014 年から更新が止まっているようなのだけど Docker入門 は概要を把握しやすくてよかった。

以下、入門手順。

インストール @ Mac

Homebrew を使う方法もあるようなのだけど、本家の mac 版インストーラを使用。ダウンロードして実行するだけ。

入門

Get started に従う。

docker で起動しているコンテナの一覧を表示

$ docker ps

CONTAINER ID        IMAGE     COMMAND                   CREATED             STATUS                PORTS                                    NAMES
185fabcd9c5d        nginx       "nginx -g 'daemon off"   13 minutes ago     Up 11 seconds      0.0.0.0:80->80/tcp, 443/tcp    webserver

起動していないコンテナの一覧も表示

$ docker ps -a

CONTAINER ID   IMAGE        COMMAND                 CREATED         STATUS                     PORTS                         NAMES
185fabcd9c5d   nginx        "nginx -g 'daemon off"  15 minutes ago  Up About a minute          0.0.0.0:80->80/tcp, 443/tcp   webserver
10bc8846eada   hello-world  "/hello"                17 minutes ago  Exited (0) 17 minutes ago   

コンテナを止める

$ docker stop webserver

コンテナを削除す

$ docker rm -f webserver

イメージの一覧を表示 (rm してもイメージは削除されていない)

$ docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              01f818af747d        6 days ago          181.6 MB
hello-world         latest              c54a2cc56cbb        6 months ago        1.848 kB

イメージを削除する

$ docker rmi nginx

Untagged: nginx:latest
Untagged: nginx@sha256:fab482910aae9630c93bd24fc6fcecb9f9f792c24a8974f5e46d8ad625ac2357
Deleted: sha256:01f818af747d88b4ebca7cdabd0c581e406e0e790be72678d257735fad84a15f
Deleted: sha256:473ebc9bec6f78c39877b6655ff7c464271d36464442ed27b10be957201e364a
Deleted: sha256:1802fbcbaa5e7496944e22a9fd0cb72051515a66e382b7148cf4098a92571221
Deleted: sha256:b6ca02dfe5e62c58dacb1dec16eb42ed35761c15562485f9da9364bb7c90b9b3

ubuntu を入れてみる

Get started に従って使い方が分かったので ↑ を参考に ubuntu を入れてみる。

$ docker pull ubuntu:latest
  → latest を指定しない場合は latest がつく

$ docker run -it --name ubuntu_test ubuntu /bin/bash
  → ubuntu イメージから ubuntu_test という名前でコンテナを作る
  → 名前を指定しない場合は自動で付けられる
  → 指定しない場合は /bin/bash が指定される

$ docker start ubuntu_test
  → イメージの再実行

$ docker exec -i -t ubuntu_test /bin/bash
  → ログイン

centos を入れてみる

ubuntu のインストールで感じがつかめたので勘で centos を入れてみる

$ docker pull centos
  → イメージを取ってくる

$ docker run -it —name centos centos
  → centos のイメージから centos という名前のコンテナをつくる

$ docker start -i centos
  → 対話モードでコンテナを起動

できた。

zsh completion

補完が欲しくなったのでダウンロードしてインストール

まとめ

便利。びっくりするぐらい便利。公式サイトから iso をダウンロードしてきて VMWare に食わせて起動することを考えると何倍も楽。一瞬で作れる。イメージからコンテナを別名で作れるのも楽。VMWare に比べて cpu 使用率が低いのが一番うれしいかも。VMWare の謎 CPU 使用率は結構辛い。Windows もどドッカーンと作れると嬉しいのだけど。VMWare Fusion が windows 10 と相性が悪いのかいつの間にか再起動地獄に陥るので辛い。windows 8 に切り替えて様子見。

さっさと Docker に取り掛かってればアレもコレも楽だったのにと悔やまれるけど、いい感じに入門できた。