docker メモ


Terminalをよく使うひとの、docker導入

install は本家のサイトから:

https://www.docker.com/
Get Started へ進む、最近は親切になっています

Documentaitionは:
https://docs.docker.com/

Docker ドキュメント日本語化プロジェクト
https://docs.docker.jp/

コマンド体系は

dockerのヘルプは
docker --helpで、出るんですが、体系的に
省略記法で短く使えるが、体系的な利用が覚えやすい。

docker Management対象 Command, Option となっている。

Management対象は代表的な物で以下がある

  • image   : containerのスナップショット
  • container :イメージを走らせるインスタンス
  • system  :image,container,volumeを管理する物
  • network :dockerのネットワーク管理

Commandは代表的な物で以下がある、Managementによって利用出来るCommandは違う

  • ls  : lsとか、psの意味
  • rm  : 削除
  • prune : 利用していない物は削除
  • help : ヘルプ

Commandを調べるには

$ docker image --help
$ docker container --help
$ docker container run --help

と言うように調べられる
docker management command --help とやるとオプションが調べられる
ショートカット・コマンドがよく使われているが使わない方が体系的に覚えられる。

試しに、imageを取得して、containerを可動させてみよう。
nginxを、docker hubから取得して、containerを起動してみる

$ docker image pull nginx # 取得
$ docker container run -it --name nginx-con -p 8080:80 nginx # 起動
docker Management対象 Command群 利用image
  • it : インターラクティブで、TTY利用
  • name:コンテナに付ける名前 コンテナ操作に使う
  • p : ポート <ホスト側ポート>:<コンテナ側ポート>

これで起動するので、ブラウザーで
127.0.0.1:8080
で起動が確認出来る。

別のTerminalでContainerの確認する

$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
9e2723caccae        nginx               "/docker-entrypoint.…"   2 minutes ago       Up 2 minutes        0.0.0.0:8080->80/tcp   nginx-con
  • CONTAINER ID : ID
  • IMAGE : 元のimage
  • COMMAND : 起動時、実行コマンド
  • CREATED :何時作成したか
  • STATUS :ステータス
  • PORTS :ポート情報 ホストのポート: コンテナのポート
  • NAMES :コンテナの名前

containerを停止する

$ docker container stop nginx-con
nginx-con

$ docker container ls -a         
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
9e2723caccae        nginx               "/docker-entrypoint.…"   23 minutes ago      Exited (0) 18 seconds ago                       nginx-con

ここで、docker の状況を見てみよう

$ docker system df # ディスク利用状況を見る
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              2                   1                   335.8MB             203.3MB (60%)
Containers          1                   0                   1.114kB             1.114kB (100%)
Local Volumes       0                   0                   0B                  0B
Build Cache         0                   0                   0B                  0B

$ docker image ls # 現在の収録イメージ
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              0901fa9da894        6 days ago          132MB
centos              7                   b5b4d78bc90c        2 months ago        203MB

~ >% docker container ls -a # コンテナの状況を見る
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
9e2723caccae        nginx               "/docker-entrypoint.…"   35 minutes ago      Exited (0) 11 minutes ago                       nginx-con

$ docker container prune # 利用していないコンテナを削除
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Deleted Containers:
9e2723caccae923f45ace783093c474be29e518b802549d36ef5ca946e2336df

Total reclaimed space: 1.114kB

$ docker system df      
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              2                   0                   335.8MB             335.8MB (100%)
Containers          0                   0                   0B                  0B
Local Volumes       0                   0                   0B                  0B
Build Cache         0                   0                   0B                  0B
~ >% 

  1. docker system df ディスクの利用状態を見る
    • imageが2つあって、1つのimageが使われている
    • containerが、Activeでないのに何故と思う
  2. docker image ls  現在の収録イメージを見る
  3. docker container ls -a # コンテナの状況を見る
    • ls -a として、稼働していない、containerも表示させる
    • Exitedのcontainerがあることに気付く
  4. docker container prune # 利用していないコンテナを削除
    • STATUSが Exitedになっているのが分かるこれを消す為に
    • docker container rm コンテナ名で削除しても良いのだが pruneコマンドで消している
    • pruneは、利用していないコンテナをまとめて削除してくれる。確認を求められる
  5. docker system df ディスクの利用状態を見る