実現したいこと
windows10 + WSL2(UBUNTU) のドッカーにCentOS7をインストールし
Dドライブにあるフォルダを対象に、httpdを起動したい
前提
ドッカーで以下の通り設定しました
GUIから
General>Use the WSL 2 based engine チェック
Resources>Ubuntu-22.04 ON
パワーシェルを起動
$ docker pull centos:centos7 $ docker run --privileged -d -v D:/server:/var/www/html --name centosq -p 80:80/tcp centos:centos7 /sbin/init $ docker exec -it centosq /bin/bash # yum install -y httpd # systemctl start httpd
発生している問題・エラーメッセージ
Failed to get D-Bus connection: No such file or directory
試したこと
・googleで調べると、privilegedがついていないためだと出てきますがつけております
・コンテナを消してwindowsを再起動、再生成しましたが同様のエラーが出ました
・コンテナを消してパワーシェルを管理者権限で起動して、再生成しましたが同様のエラーが出ました
・UBUNTU側から操作しましたが同様のエラーが出ました
・chatgptに確認すると以下の案が出されましたが実行しても同様のエラーが出ました
Dockerfileを作成して、systemdをインストールする
FROM centos:centos7 # Install systemd and other necessary packages RUN yum -y install systemd; yum clean all; \ (cd /lib/systemd/system/sysinit.target.wants/; \ for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \ rm -f /lib/systemd/system/multi-user.target.wants/*;\ rm -f /etc/systemd/system/*.wants/*;\ rm -f /lib/systemd/system/local-fs.target.wants/*; \ rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ rm -f /lib/systemd/system/basic.target.wants/*;\ rm -f /lib/systemd/system/anaconda.target.wants/*; # Enable systemd ENV init /lib/systemd/systemd CMD ["/lib/systemd/systemd"]
Dockerfileをビルドして、Dockerイメージを作成する
docker build -t centos-systemd .
Dockerコンテナを起動するときに、systemdを使用するように設定する
docker run --privileged -v D:/server:/var/www/html --name centosq -p 80:80/tcp centos-systemd
chatgptもお手上げだそうで、この後は意味不明の返答が返ってきます
わかる方お教えいただけますと幸いです