Docker
/var/lib/docker 以下を色々みるのがイメージ使い見やすいかも。
実体があると、心理的に安心して、理解を先に行かす事ができる
containerとは?
What is a Container? | Docker
a standard unit of software that packages up code and all its dependencies
規格化されたsoftwareで、必要なコードとdependenciesをパックしてる。
いままでは、ディスク上のどこかにcotainerが居ると思ってた。
目に見えないものは難しい。抽象概念をつかむには時間かかる。
参考:
Docker基礎+docker0.9, 0.10概要
@201911 見た。わかりやすかった。
入門 Docker
簡潔。わかり始めた段階で理解の整理によい?
Play with Docker Classroom
ここを最初にやる。英語だけど。
Docker入門(第一回)~Dockerとは何か、何が良いのか~ | さくらのナレッジ
取得したDockerイメージでコンテナ起動
イケてるエンジニアになろうシリーズ 〜Dockerガチ入門編〜 - もろず blog
ディレクトリ構造の和、UnionFileSystem
同じマウントポイントに複数のディスクをマウントし、含まれるディレクトリ構造の和として扱うファイルシステム
後からのものが優先される。
Kaggle/docker-python: Kaggle Python docker image
機械学習ではじめるDocker - にほんごのれんしゅう
comand
ps, run, start, stop, rm, rmi, exec くらいは頭の中にいれておく。
ps の表示が見にくい。docker ps
$ alias 'dp=docker ps --format "table {{.Names}}\t{{.Ports}}\t{{.Status}}\t{{.Command}}"' とした。
aliasは、固定表記なので、パラメータを受けるには関数化だが、、
commandがtruncatedされてて、なんか不安。 --no-trunc
moncho/dry: dry - A Docker manager for the terminal @を入れてみた。
monitorモードとかいい。
stat, log, inspect などもできる。
run
--link Docker の基本学習 ~ コンテナ間のリンク - Qiita
--link は、<接続先コンテナ名:エイリアス名>という形式で指定する。
接続元コンテナ内から環境変数を表示すると、エイリアス名のついた環境変数が作られて、接続先の情報が入っていることが分かる。
-v で、Bind mount a volume
docker run -v $HOME/dev/foo/data:/data といった形
が、Userが指定の場合など、permission関連でerrorがでるケースが多そう。
chownで変える?
Volume: Docker Volume
Environment
-e でcontainer起動時に指定。イメージに入れておく場合はDockerfileにハードコードも可能
--env-fileでファイルを読み込ませることも可能
Docker Compose の場合は、Environment variables in Compose | Docker Documentation
docker-composeは、versionごとの記法の変更が多い気がするので、version注意。
network
Understanding Docker Networking Drivers and their use cases - Docker Blog
とりあえず、bridgeが一番シンプル。
exec 以下で、containerの内に入る. -i:interactive, -t:tty, /bain/bash: shellの情報を与える。
$ docker exec -it CONTAINER_NAME /bin/bash
process
ctop: bcicen/ctop: Top-like interface for container metrics
リソースを使用状況(cpu, mem, net, io)を見るのに簡便。
tools:
moncho/dry: dry - A Docker manager for the terminal @
docker groupに入っておく 
$ sudo groupadd docker
$ sudo gpasswd -a $USER docker
$ newgrp docker
https://kazmax.zpp.jp/cmd/n/newgrp.1.html
https://github.com/docker/compose/issues/4181
#dev