私がmy_container
実行すると呼び出されるコンテナーdocker run -i -t my_container
があり、実行するnpm --version
と取得され2.7.4
ます。
ただし、コンテナーの外部から同じコマンドを実行しようとするとdocker run --workdir=/home/ubuntu/www my_container npm --version
、エラーメッセージが表示されます。
npmが見つかりません。lxc-start:コンテナの起動に失敗しました。lxcstart:--logfileおよび--logpriorityオプションを設定することにより、追加情報を取得できます。
私が実行するほとんどのコマンドは、だけでなくこれと同じ動作をしnpm
ます。それがさらに手掛かりを追加する場合、私はCircle CIでこれを行っています。
おそらく、コンテナentrypoint
はシェルを提供するように設計されていますが、引数をとらないためです。を使用docker inspect
して、イメージのエントリポイントを表示できます。
$ docker build -
FROM busybox
ENTRYPOINT ["/bin/sh"]
Sending build context to Docker daemon 2.048 kB
Sending build context to Docker daemon
Step 0 : FROM busybox
---> 8c2e06607696
Step 1 : ENTRYPOINT /bin/sh
---> Running in eb5b4d32af96
---> ad1286aebbe2
Removing intermediate container eb5b4d32af96
Successfully built ad1286aebbe2
13:59 ~ $ docker run --rm -ti ad1286aebbe2 echo hi
/bin/sh: can't open 'echo'
busybox
公式にはエントリポイントがないため、引数はコマンドとして扱われます。つまり、/ bin / sh -cに直接移動します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加