Самый простой способ решить эту проблему - перезапустить докер. Но в некоторых случаях это может не сработать, даже если у вас нет контейнеров, работающих в порту. Вы можете проверить работающие контейнеры с помощью docker ps
команды и увидеть все контейнеры, которые не были очищены, но закрыты до использования docker ps -a
команды.
Представьте, что есть контейнер с идентификатором контейнера. 8e35276e845e
Вы можете использовать команду docker rm 8e35276e845e
или, docker rm 8e3
чтобы завершить контейнер. Обратите внимание, что первые 3 строки являются идентификатором этого конкретного идентификатора контейнера Docker. Таким образом, согласно вышеописанному сценарию 8e3 является идентификатором 8e35276e845e .
Если перезапуск не работает, вы можете попробовать изменить порты служб в файле docker-compose.yml, и в соответствии с портом apache вы должны изменить порт v-хоста (если есть). Это решит вашу проблему. проблема.
Пример:
build:
context: ./apache
dockerfile: Dockerfile
working_dir: /var/www/
volumes:
- .:/var/www
networks:
- app-network
ports:
- 8082:80
depends_on:
- mysql_db
должен быть изменен на
apache_server:
build:
context: ./apache
dockerfile: Dockerfile
working_dir: /var/www/
volumes:
- .:/var/www
networks:
- app-network
ports:
- 8083:80
depends_on:
- mysql_db
и конкретный v-хост также должен быть изменен,
Ex (согласно вышеописанному сценарию):
<VirtualHost *:80>
ProxyPreserveHost On
ServerAlias phpadocker.lk
ProxyPass / http://localhost:8083/
ProxyPassReverse / http://localhost:8083/
</VirtualHost>
Это поможет вам решить вышеуказанную проблему.