#docker #nginx
#докер #nginx
Вопрос:
Я пытаюсь развернуть nginx / gunicorn / django stack на компьютере, где размещено несколько веб-сайтов. И я могу сделать это на любых других портах, кроме порта 80, который в конечном итоге мне понадобится, потому что HTTP daemon использует это. И я не знаю о последствиях завершения процесса httpd. До того, как я развернул docker, php был запущен на этом веб-сайте с cpanel.
Процессы, использующие порт:80, являются
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 22466/httpd
tcp6 0 0 :::80 :::* LISTEN 22466/httpd
Есть какие-нибудь советы или идеи?
Редактировать: мои конфигурационные файлы для работы с портом 8000, когда я меняю порты на 80, у меня возникает проблема, о которой я спрашиваю:
docker-compose.yml
version: '2'
services:
nginx:
image: nginx:latest
container_name: ng01
ports:
- "8000:8000"
volumes:
- ./src:/src
- ./config/nginx:/etc/nginx/conf.d
- /static:/static
- ./src/media:/media
depends_on:
- web
web:
build: .
container_name: dg01
command: bash -c "python manage.py collectstatic --no-input amp;amp; python manage.py makemigrations amp;amp; python manage.py migrate amp;amp; gunicorn mydjango.wsgi -b 0.0.0.0:8000"
depends_on:
- db
volumes:
- ./src:/src
- /static:/static
- /media:/media
expose:
- "8000"
db:
image: postgres:latest
container_name: ps01
nginx conf
upstream web {
ip_hash;
server web:8000;
}
server {
location /static/ {
autoindex on;
alias /static/;
}
location /media/ {
autoindex on;
alias /media/;
}
location / {
proxy_pass http://web/;
}
listen 8000;
server_name server_domain_here;
}
Ответ №1:
В docker вы можете перенаправить порт 80, который используется внутри контейнера, на другой порт на хосте.
docker run -d -p 8080:80 <your image>
тогда у вас не будет конфликта на вашем хостинге.
Комментарии:
1. В моем docker-compose.yml у меня установлен порт «8000: 8000» для nginx, должен ли я удалить это, или эта команда переопределит его? Кроме того, спасибо за ваши усилия помочь
2. Если вы используете docker-compose, то вы можете изменить перенаправление там. Как выглядит ваш docker-compose.yml?
3. Я добавил свой nginx conf и файл docker-compose. И, как я упоминал в сообщении, на данный момент он стоит 8000 долларов и работает должным образом. Проблема возникает, когда я меняю все 8000 на 80, затем он сообщает мне, что порт 80 уже выделен. Также, когда я пытаюсь использовать 80, я удаляю часть expose из docker compose, поскольку она уже доступна.
4. Ну да, порт 80 можно использовать только один раз.