質問: dockerでapacheを再起動します dockerコンテナの.htaccessファイルを更新しようとしています。ファイルを更新した後、apacheを再起動する必要があります。コマンドservice apache2 restartを使用してapacheを再起動しようとすると、次のエラーが発生します。(98)address already in use: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down unable to open logs action 'start' failed. the apache error log may have more information. ...fail! エラーログを取得したとき、新しいエラーはありません。これは私のdockerfileがどのように見えるかです:from ubuntu:12.04 # install dependencies run apt-get update -y run apt-get install -y git curl apache2 php5 libapache2-mod-php5 php5-mcrypt php5-mysql php5-curl vim # install app run rm -rf /var/www/* add src /var/www # configure apache run a2enmod rewrite run chown -r www-data:www-data /var/www env apache_run_user www-data env apache_run_group www-data env apache_log_dir /var/log/apache2 expose 80 cmd ["/usr/sbin/apache2", "-d", "foreground"]
回答: dockerfileによると、dockerイメージを作成するときにhtmlファイルを含めます。add src /var/www では、イメージの実行後に.htaccessファイルを編集する必要がある理由を説明できますか?異なるホストで異なる.htaccessファイルが必要な場合、「docker」の方法は、コンテナーを実行するときに データボリューム を使用することです。docker run -v /path/to/host.htaccess:/var/www/.htaccess user/image