習慣沉默2017-04-27 09:04:16
Docker は 1 つのコンテナーと 1 つのサービスを推奨します。nginx、mysql、PHP-FPM (PHP) を異なるコンテナーに分割した後、Docker の再起動メカニズムを使用してサービスの可用性を確保できます。この方法 docker-node.js
曾经蜡笔没有小新2017-04-27 09:04:16
docker の原理は、docker run によって実行されるコンテナーは本質的に単なるプロセスであり、バックエンドがさまざまなシステムコールを呼び出してそれを分離し、仮想マシンのように見せることです。
Docker run 実行中のプロセスとそのサブプロセスは、メインプロセスが停止しない限り、Docker コンテナはハングしません。
これに基づいて、supervisord をメインプロセスとみなして、php と nginx を一緒に起動できます。 php および nginx プロセスは、supervisord によって管理されます。
既成の dockerfile。
スーパーバイザーdプロセス管理+nginx+php7
php+nginx+supervisord dockerfile:
https://github.com/qiukeren/d...
まあ、salt-minion も同時にインストールされますので、必要ない場合は自分でカスタマイズしてください。
プロジェクトアドレス:
https://github.com/qiukeren/d...、bash build.sh
を直接実行してコンテナを生成します。
巴扎黑2017-04-27 09:04:16
上記の答えでは問題は解決しませんでした
投稿者の悩みはこの記事で解決できます
https://javablog.net/page/250...
1 つのドックで複数のプロセスを実行する必要がある場合、誰もあなたを止めることはできません。お気軽に
淡淡烟草味2017-04-27 09:04:16
コンテナーの開始後に lnmp も開始されていることを確認してください。 nginx mysql php がフォアグラウンドで開始されていることを確認してください。それ以外の場合、コンテナーはこれらのプロセスがコンテナーから離れてバックグラウンドで開始されたことを検出し、コンテナー自体が自動的に開始されます。近い。 lnmp のコンテナ化については、https://www.centos.bz/2017/02... を参照してください。