私はapacheを実行するためのドッカーイメージを構築しました。私はubuntuのベースイメージから構築したので、私が望むバージョンのApacheとPHPを設定することができました。フォアグラウンドでApacheを実行するために、ドッカーファイルの最後にCMD
を追加しました。私のドッカーイメージがサービスとしてApacheを実行するにはどうすればいいですか?
FROM ubuntu:16.04
RUN apt-get update && \
apt-get install -y --allow-unauthenticated software-properties-common && \
add-apt-repository ppa:ondrej/apache2 && \
apt-get update && \
....
WORKDIR/
CMD ["/usr/sbin/apachectl","-DFOREGROUND"]
(他のサービスと一緒に)ドッカーの作成を使用してコンテナを実行しようとしています。しかし、コンテナはすぐに出ます。 docker
コマンドでイメージを実行する場合も同様です。私はdocker run -it my_image
でそれを実行した場合興味深いことに、その後、コンテナが開始され、私はbashシェルに入れてる
docker run my_image
docker ps
。 (私が使用しているubuntuベースイメージのデフォルトのCMDはbashだと思います)。
何か不足していますか? Dockerfileを書いて、apacheがイメージ上のサービスとして動作するようにするにはどうしたらいいですか?
を 'ドッカログが'何を言うん:
ここでは例がDockerfile、関連
docker build
出力(特にCMD
ステップ)、および実行されていることの一例ですか? – johnharris85"私はDockerfileからコンテナを実行しようとしています(他のサービスと一緒に)" - 意味が分かりませんか?どういう意味ですか? – johnharris85
「面白いことに、私がdocker run -it my_imageで走らせたら」 - 奇妙なことに、Dockerfile全体を投稿して、それをどのように実行しようとしていますか(さまざまな方法で)してください。 – johnharris85