Найпростіший спосіб вирішити це - перезапустити докер. Але в деяких випадках це може не працювати, навіть якщо у вас немає жодних контейнерів, які працюють у порту. Ви можете перевірити запущені контейнери за допомогою docker ps
команди та побачити всі контейнери, які не були очищені, але були випущені перед використанням docker ps -a
команди.
Уявіть, що є контейнер з ідентифікатором контейнера. 8e35276e845e
Ви можете використовувати команду docker rm 8e35276e845e
або docker rm 8e3
закінчити контейнер. Зауважте, що перші 3 рядки - це ідентифікатор конкретного ідентифікатора контейнера докера. Таким чином, згідно з вищезазначеним сценарієм 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-хост також повинен бути змінений,
Наприклад (відповідно до вищезазначеного сценарію):
<VirtualHost *:80>
ProxyPreserveHost On
ServerAlias phpadocker.lk
ProxyPass / http://localhost:8083/
ProxyPassReverse / http://localhost:8083/
</VirtualHost>
Це допоможе вам вирішити вищевказану проблему.