Kuzunoha-NEのブログ

プログラミングなどの勉強をしてます

【Docker】コマンド以降をEchoするDockerfileの作成 - ENTRYPOINT

こんにちは、葛の葉です。

Dockerに出てくるENTRYPOINTについて調べていました。

今回はdocker run [IMAGE_ID] ******をエコーするDockerImageを作成したいと思います。

大変参考になったサイト

qiita.com

Dockerfile

FROM alpine:3.9.4
ENTRYPOINT ["echo"]
CMD ["Hello World!"]

今回はechoという名前でDockerImageにbuildしておきます。

実行してみる。

docker run --rm -it echo

とすると

Hello World!

と返ってきます。

[kuzunoha@:18:17:53:~]$docker run -it --rm echo
Hello World!

docker run --rm -it echo FOX

とすると

FOX

と返ってきます。

[kuzunoha@:18:18:39:~]$docker run -it --rm echo FOX
FOX

ENTRYPOINT(echo)がコマンドでCMD(Hello World)がデフォルト引数といったような感じになりました。

シェルを起動したいなぁ

しかしこのままでは以下のようなコマンドではシェルを起動できません。docker run -it --rm echo /bin/shでは/bin/shという値が返ってきます。

[kuzunoha@:18:22:53:~]$docker run -it --rm echo /bin/sh
/bin/sh

そのため、entrypointを上書きしてあげる必要があります。

docker run -it --rm --entrypoint=/bin/sh echoとすればシェルが起動します。

[kuzunoha@:18:27:45:~]$docker run -it --rm --entrypoint=/bin/sh echo 
/ #