久しぶりに docker イメージを作ろうとしたけど、忘却の彼方でした。 思い出しついでの作業メモ。
新規 Docker 起動の作業メモ
Dockerfile 作成
適当なディレクトリ作って Dockerfile
を作る。
$ mkdir docker; cd docker; $ vi Dockerfile
よく docker でつかう alpine を設定。
FROM alpine:3.10 SHELL ["/bin/ash", "-eo", "pipefail", "-c"]
ビルド
現在のディレクトリ指定してビルド。
$ docker build .
イメージができてるか確認。
$ docker images | head REPOSITORY TAG IMAGE ID CREATED SIZE <none> <none> 3b9e46db4286 10 seconds ago 5.58MB
タグ付け
呼び出しやすいようにタグ付けして、ちゃんとついたか確認。
$ docker tag 3b9e46db4286 test/alpine:3.10 $ docker images | head REPOSITORY TAG IMAGE ID CREATED SIZE test/alpine 3.10 3b9e46db4286 About a minute ago 5.58MB
実行
alpine は bash
じゃなくて ash
なのを注意して起動。
$ docker run --rm -i -t test/alpine:3.10 /bin/ash
--rm
つけておけば、無駄にプロセス残らない。
--rm コンテナ終了時、自動的に削除 -i コンテナの STDIN にアタッチ -t 疑似ターミナル (pseudo-TTY) を割り当て
イメージ削除
もう必要がないイメージは消してしまう。
$ docker rmi test/alpine:3.10
所感
マウントするための -v
や、ポート指定の -p
とかも起動オプションでよく使います。
イメージから作ることってあまりないし、docker compose でまとめちゃうからすっかり忘れてしまってた。