Контейнер Nginx, действующий как прокси - PullRequest
0 голосов
/ 08 июня 2018

Недавно я начал изучать Docker и обнаружил инструмент под названием Portainer для управления контейнерами и изображениями Docker.Я заставил его работать как контейнер на удаленном сервере, но он использует порт 9000, который я хотел бы изменить на 80, поэтому я подумал об использовании прокси.Я решил использовать Nginx (который я никогда раньше не использовал) в качестве контейнера.Я запускаю Nginx со следующей инструкцией:

docker run --name mynginx2 -v /var/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro -P -d nginx

и файл /var/nginx/conf/nginx.conf выглядит так:

events {
    worker_connections 1024;
}
http {
    server {
        location / {
            proxy_pass http://localhost:9000;
        }
    }
}

worker_connections пришлось вставить из-за ошибокво время запуска контейнера.Когда я захожу на ip своего удаленного сервера (скажем: http://ip.of.my.server/),, я ожидаю, что Portainer появится, но ничего не происходит. Я даже не получаю код состояния ответа.

Чтоя здесь скучаю?

С уважением, Даниэль

1 Ответ

0 голосов
/ 08 июня 2018

Запустите ваш portainer контейнер следующим образом:

docker run -it --name myportainer -v "/var/run/docker.sock:/var/run/docker.sock" -d portainer/portainer

Затем запустите nginx следующим образом:

docker run --name mynginx2 -v /var/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro -p 80:80 -P -d --link myportainer:myportainer nginx

В вашей конфигурации nginx используйте это:

events {
    worker_connections 1024;
}
http {
    server {
        listen 80;

        location / {
            proxy_pass http://myportainer:9000;
        }
    }
}

Также вышеприведенные команды должны помочь, в долгосрочной перспективе будет проще использовать docker-compose:

Вот как должен выглядеть ваш docker-compose.yml:

version: "2"

services: 

  proxy:
      image: nginx:latest
      container_name: proxy
      ports:
       - "80:80"
      volumes:
       - /var/nginx/conf/nginx.conf:/etc/nginx/nginx.conf

  portainer:
      image: portainer/portainer
      container_name: myportainer

Тогда вы просто запускаете docker-compose up -d

...