2016-11-23 7 views
-1

私はhttpdをインストールするためのドッカーファイルを持っています。私は、コマンドにドッキングコードを使用しているときにコード0でコンテナを終了する

ドッキングウィンドウの実行-dit/binに/ bashのを使用して、このdockerfileを実行すると

コンテナが開始され、それがバックグラウンドで実行されています。私が実行するときドッカーのps私はコンテナが実行されて見ることができます。

私は私が

ビルドをドッキングウィンドウ-構成使用して、このコンファイルを構築する必要があり、以下のように

version: '2' 
services: 
    web: 
    build: 
     context: ./web 
     dockerfile: Dockerfile-apache 
    image: web:1.0 
    container_name: web 
    ports: 
    - "80:80" 
    command: service httpd start 

をドッキングウィンドウ-compose.ymlファイルを作成しています。

は一度、その後、私は

-dをドッキングウィンドウ・作曲使用してコンテナを開始しました。

コンテナが終了しています。コンテナをバックグラウンドで実行させる方法がわかりません。

また、サービスをコンテナ内で実行したいと考えています。例えば、私はサービスhttpdの開始のようなコマンドを実行する必要がありますどのようにそれを行うには?

+0

[Docker CentOSイメージは、httpdを自動起動しません](http://stackoverflow.com/questions/21280174/docker-centos-image-自動起動 - httpd) – VladoDemcak

答えて

6

これは、Dockerコンテナはコマンドが実行されている間のみ有効です。 コマンドservice httpd startは、httpdをバックグラウンドで起動して終了します。これにより、httpdとコンテナが終了します。

あなたは直接httpdプロセスを実行し、フォアグラウンドで、official image's start scriptを参照してくださいする必要があります。

httpd -DFOREGROUND

1

あなたが一緒に-ditオプションでドッキングウィンドウを実行することはできません。 -dはバックグラウンドモードで実行することを意味し、-tiは端末と対話することを意味します。だから、両方ともではなく-d ORで-d ORを指定して実行する必要があります

関連する問題