docker-composeでApacheを起動しようとするとコンテナは起動するが、Apache起動しない
環境
- windows10 home
- Docker version 19.03.1, build 74b1e89e8a(Docker toolbox)
- docker-compose version 1.24.1, build 4667896b
やろうとしていること
CentOS8のイメージにApacheをインストールし、起動させたいです。
なお、Apacheが入ってるイメージは意図的に利用していなく、
本番とCentOSのバージョンなどを合わせるためにやっております。
(本番はコンテナが使えないので、環境だけでも合わせようとDockerを使っています)
やったこと
下記のDockerfileを作成しました。
FROM centos:8
# CentOSを最新に
RUN yum update -y
RUN yum upgrade -y
# タイムゾーンをJSTに
RUN ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# 言語を日本語に
RUN echo "LANG=ja_JP.UTF-8" | tee /etc/sysconfig/i18n
# Apacheを入れる
RUN yum install -y httpd
RUN apachectl -v
RUN systemctl enable httpd
CMD ["/sbin/init"]
これをdocker-compose.ymlから呼び出します。
version: '3.7'
services:
apache:
build: './data/apache'
volumes:
- ./data/apache/log:/var/log/apache/
- ./data/apache/conf:/etc/apache2/conf
- ./data/apache/conf.d:/etc/apache2/conf.d
ports:
- 10080:80
ビルドを行い、起動します
docker-compose up -d --build
ビルド後、プロセスが立ち上がったかの確認
$ docker-compose ps 指定されたパスが見つかりません。
Name Command State Ports
------------------------------------------------------------
apache_1 /sbin/init Up 0.0.0.0:10080->80/tcp
何故か「指定されたパスが見つかりません。」と表示されますが…
とりあえず起動してそう。
- 0.0.0.0:10080
- localhost:10080
- 127.0.0.1:10080
などにアクセスしましたがつながらりませんでした。
dockerのイメージにアクセスしてみました。
docker-compose exec apache bash
そこでapacheの状態を見てみようとコマンドを叩くとエラーが出ました。
# apachectl status
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
調べてみると以下のようなものが見つかったので試していきます。
sudo service redis-server start
を使え
とのことなので、使ってみます。
service start apache
bash: service: command not found
そもそもserviceコマンドがない…
docker for windowsを使っていない……
などです。
他にも見ましたが、似たようなことばかりでした。
この原因、当たりがつく方がいらっしゃいましたら、解決方法などお知恵をお貸しいただきますと幸いです。
よろしくお願いいたします。