🖥

docker run / exec でコマンドが実行できない場合は entrypoint を上書き or 削除してみる ( #docker

2019/10/14に公開

なぜか echo ok が実行できない

$ docker run mesosphere/aws-cli echo ok
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:
...

元のDockerfileを確認する

ENTRYPOINTが指定されている。

https://hub.docker.com/r/mesosphere/aws-cli/dockerfile

image

entrypoint を削除して コマンドを実行する例

$ docker run --entrypoint= mesosphere/aws-cli echo ok
ok

entrypoint を上書きする例

$ docker run --entrypoint='hostname' mesosphere/aws-cli
e2ff1cabebf0

ところで entrypoint のコマンドには引数を渡せないっぽい?

command との違いはなんだろうと思っていたけれど、引数のないコマンド一個だけを実行するということだろうか。なるほど。その名の通りエントリーポイント。

$ docker run --entrypoint='echo ok' mesosphere/aws-cli
docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"echo ok\": executable file not found in $PATH": unknown.
ERRO[0001] error waiting for container: context canceled

Dockerfileでは

ENTRYPOINT []

docker - How to remove entrypoint from parent Image on Dockerfile - Stack Overflow

docker-compose では

こうかな。

entrypoint: []

Original by Github issue

https://github.com/YumaInaura/YumaInaura/issues/2591

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2019-10-14

Discussion