2017-01-05 10 views
1

私はdevサーバーを実行しているノードドッカーコンテナを持っています。私のドッキングウィンドウ-compose.ymlファイルで実行中のドッカー・コンテナのエントリ・コマンドbashにアクセスできますか?

、エントリーコマンドは次のとおりです。

ベンダーがインストールした後、サーバーを起動するスクリプトにポイント-devのサーバーの起動
... 
command: start-dev-server 
... 

// /usr/local/bin/start-dev-server 
#!/usr/bin/env bash 

# install node modules if missing 
npm i 
# start the dev server 
npm run start 

私はコンテナを起動すると、サーバーも起動します。

私は、次のコマンドを使用してbashで、私のコンテナにアクセスできることを知っている:

docker exec -it my-container bash 

しかし、私は自分のサーバーが停止したり再起動することはできません。 起動したコマンドでsshにアクセスする方法はありますか? (サーバーログなどを参照するか、または&を停止して再起動してください)。

エントリコマンドが停止されていない可能性があるので、ここで間違ったパスをとっているのでしょうか?だから、この場合、誰も私のサーバーを起動することができる解決策を持っています&より柔軟な方法でそれを制御しますか?

+0

ベストプラクティスでは、コンテナがサーバーとして表示されるはずです。停止したい場合はコンテナを停止し、再起動したい場合はコンテナを再起動してください。あなたのサーバは 'stdout'にログする必要があります。' docker logs my-container'を使ってログを見ることができます。それで、あなたは正しいのですが、コマンドはコンテナを止めるので、停止させるべきではありません。ソリューションを提案するには、「より柔軟な方法で制御する」と言ったときにはどういう意味ですか? – charli

+0

実際には、docker logs -f my-containerコマンドは完全に私が望んでいたものですが、実際にはサーバーを停止して再起動するためには、ドッカーのコマンドを使用するだけです。私はログコマンドを表示するための-fオプションを見逃してしまった。ありがとうございます、あなたのコメントで答えることができます、私はあなたの答えを受け入れるよ! – jiboulex

+0

ありがとう!ドッカーのコマンドとDockerのベストプラクティスへのリンクを追加しました – charli

答えて

2

best practicesには、コンテナがサーバーとして表示されるはずです。停止したい場合はコンテナ(docker stop my-container)を停止し、再起動したい場合はコンテナ(docker restart my-container)を再起動してください。サーバーはstdoutにログする必要がありますので、docker logs -f my-containerを使用してログを確認できます。それで、あなたは正しいのですが、コマンドはコンテナを止めるので、停止させるべきではありません。

関連する問題