Docker
Container technology
Reference documentation | Docker Documentation
Docker usefull commands
Docker創始者らが開発、ビルド/テスト/デプロイの自動化をポータブルにするツール「Dagger」登場。そのままローカルでもGitHubでもCircleCIでも実行可能に - Publickey
Useful docker tools
Docker へのリソースの割当を制御したい
Runtime options with Memory, CPUs, and GPUs | Docker Documentation
By default, a container has no resource constraints and can use as much of a given resource as the host’s kernel scheduler allows.
とあるが、Mac の GUI では設定をしている気がする
これはコンテナごとの割当というより、Docker プロセスに対する割当だと思っていたのだけど、それは cli ではどのように確認できるのか?
立ち上がらない
参考になるかも
Service start request repeated too quickly, refusing to start limit
サービスの設定っぽい。設定ファイルはstatusで確認できる2
image,containerをdockerfileとして定義することでportableに
ポートやコンテナにコピーするディレクトリを定義
1. imageを書くかダウンロード
code: Dokerfile
FROM base-image
WORKDIR /application_path
ENV コンテナ内で通したいホストのパス?
ENTRYPOINT docker run で起動するコマンド
CMD
entrypointは簡単には上書きされないが、CMDは引数で即座に上書きされる
engine reference: http://docs.docker.jp/engine/reference/index.html
docker imageはローカルに保存されている: https://docs.docker.com/get-started/part2/#build-the-app
バックグラウンドで起動するには -d オプション
バックグラウンドで作動しているimageの一覧は docker container ls
2. docker build で dockerfileからimageをビルド
code:build
-t ,--tag
-rm コンテナ終了時に削除
-p 8080:80 dockerないの80を8080にマップ
3. docker run image を container として起動
code:options
-it デーモンではなくコンソールに出力
-t インターフェースを作成
-i アウトプットを表示
--rm プロセスが終了したらコンテナを削除
-d デタッチ
複数コマンド実行するには: Dockerのライフサイクルがよくわからなかった - Qiita
コンテナを動かし続けるには
How to keep Docker container running after starting services? - Stack Overflow
-t で擬似的につなぐ
docker run | Docker Documentation
Confused about Docker -t option to Allocate a pseudo-TTY - Stack Overflow
Dockerコンテナ・ホスト間のフォルダ権限管理を改善
ユーザー名前空間でDockerコンテナのrootとホストのユーザをマッピングする
デフォルトユーザのidは1000のことが多い?のでディレクトリ/ファイルの所有者を1000にしてあげれば、ホスト、コンテナ双方からアクセスできる。
docker image prune
dangling imageを削除
容量食う
container は host OS と karnel を共有している
What is the relationship between the docker host OS and the container base image OS? - Stack Overflow
mac では Linux VM の中で動かしている?
How does Docker run a Linux kernel under macOS host? - Stack Overflow
apple silicon で image を build すると、ARM 向けになってしまう
How to build x86 (and others!) Docker images on an M1 Mac – Jaimyn's Blog