みずりゅの自由帳

主に参加したイベントやソフトウェア技術/開発について記録しています

ElixirのDocker Imageで latest タグを付け替える

備忘。

ElixirのDocker Imageで、latestタグがバージョン1.8.1に割り当たっていた。
これを、バージョン1.9.1のものに変更する。

Docker image のtagを削除

docker image ls を実行すると、latest タグが elixirの1.8.1 に付与されていた。

$ docker image ls
REPOSITORY    TAG       IMAGE ID            CREATED             SIZE
elixir        1.9.1     3a74c2e86069        3 weeks ago         1.08GB
elixir        1.8.1     7923a9d70b5e        3 months ago        1.08GB
elixir        latest    7923a9d70b5e        3 months ago        1.08GB

そのため、タグを指定しないとElixirのバージョンは1.8.1でiexが起動される。

$ docker run -it --rm elixir
Erlang/OTP 21 [erts-10.3.5.1] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [hipe]

Interactive Elixir (1.8.1) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)>

docker rmi コマンドで、<REPOSITORY>:<TAG>の書式で削除したいTAGを指定する。
今回の場合は、elixir:latest を指定する。

$ docker rmi elixir:latest
Untagged: elixir:latest

その後、もう一度 docker image ls で確認する。

$ docker image ls
REPOSITORY    TAG       IMAGE ID            CREATED             SIZE
elixir        1.9.1     3a74c2e86069        3 weeks ago         1.08GB
elixir        1.8.1     7923a9d70b5e        3 months ago        1.08GB


あらためて、docker run で elixirを指定して実行みると、イメージのダウンロードが始まった。

$ docker run -it --rm elixir
Unable to find image 'elixir:latest' locally
latest: Pulling from library/elixir
9cc2ad81d40d: Pull complete
・・・

Docker image のtagを付与

新規取得ではなく、既存のDocker Image に別のImageファイルにタグ付をしたい場合。

この場合には、docker tag コマンドを利用する。

書式は、以下のイメージ。

docker tag <元のREPOSITORY>:<TAG> <付けたいのREPOSITORY名>:<つけたいTAG名>

今回は、「elixir:1.9.1」に「elixir:latest」とタグをつける。

$ docker tag elixir:1.9.1  elixir:latest

docker tagの場合、成功しても特にメッセージは出ない。

実行結果を docker image lsで確認する。

$ docker image ls
REPOSITORY    TAG       IMAGE ID            CREATED             SIZE
elixir        1.9.1     3a74c2e86069        3 weeks ago         1.08GB
elixir        latest    3a74c2e86069        3 weeks ago         1.08GB
elixir        1.8.1     7923a9d70b5e        3 months ago        1.08GB

タグlatestを、1.9.1と同じDocker Imageに設定することができた。

$ docker run -it --rm elixir
Erlang/OTP 22 [erts-10.4.4] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [hipe]

Interactive Elixir (1.9.1) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)>

elixir:1.9.1側を起動しても同じもの。

$ docker run -it --rm elixir:1.9.1
Erlang/OTP 22 [erts-10.4.4] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [hipe]

Interactive Elixir (1.9.1) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)>

参考URL:

blog.jnyo.net