Повторяю ещё раз, у тебя сейчас в контейнере запущен NGINX на стандартном порту 80, а с хоста настроен проброс с порта 8081 на порт NGINX внутри конейнера.
С внешнего мира или даже с хоста ты уже для подключения должен писать http://IP:8081.
Как ты запускаешь контейнер? Если через docker run, то просто добавь ключ -p 8080:80. Здесь 8080 это порт на хосте, а 80 - внутри контейнера. Подключаться по http://IP:8080
я не запускаю, это на сервере стоит. Вообщем задача такая, сейчас я захожу на сервер http://IP, мне надо заходить http://IP:port, а 80-й порт вовсе прикрыть для доступа
я смотрел, но не разобрался, + очень не дружественный мне язык)
А на каком языке вы собрались работать? На варианте «сделай мне зашибись»? Это без стеба. Вам дали ссылку на оригинальную документацию, но вместо этого вы хотите суржиковую интерпретацию написанную непонятно кем и непонятно как.
устанавливал я, все это прописано в файле docker compose при инсталяции. Я пробывал там менять на свой порт и инсталлировать по новой, но получаю ошибку при инсталляции с msql что то. Я думаю не ужели уже сейчас на сервере нельзя сменить порт? Ну или как то сделать что мне нужно
у меня стоит сервис на сервере. Основан на Docker, так же использует базу мскл. Домена не имею, вход строго по ип адресу. Сейчас вход ип.Т.е на 80-м порту. Я хочу закрыть 80-й порт и входить к примеру http://ip:35285 Возможно тут докер и вовсе не при чем, я не знаю, но задача моя такая
да, только инсталяцию проводить не надо, когда создается контейнер, а это происходит при docker-compose up (docker-compose down контейнеры останавливаются и уничтожаются автоматически), при первом старте скачиваются и собираются образы, дальше они никак не изменяются
Я хочу закрыть 80-й порт и входить к примеру http://ip:35285
Это не настолько сложная задача, что бы не нагуглить на неё ответ. Ваш вопрос очень близок к вопросу сколько будет 3-2*2 ? Или «Какой Толстой написал Войну и Мир?».
остановить контейнеры, если написан systemd unit - systemctl stop имя юнита, если нет -то перейти в папку с docker-compose.yaml выполнить docker-compose down, внести изменения в файл, произвести запуск docker-compose up -d, если все нормально и использовался systemd - остановить docker-compose down, и выполнить запуск службы systemctl start имя юнита
Это все равно что, нам надо перевесить картину -сломаем дом и построим его заново. Переустановка - гарантировано потеряешь данные. Докеры для того и придуманы, чтобы не руинить систему на каждый чих. Раз все это делал не ты - то:
Узнай у того кто это делал, как запускались контейнеры (посмотри в директории /etc/systemd/system/ нет ли там файла с именем службы, которую ты пытаешься поправить)
останови контейнеры
внеси правки
запусти все обратно
Честно говоря за такие вмешательства, вообще без понимания что такое докеры и с чем их едят - мнеб в свое время ввалили люлей старшие
root@24683:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b6895264ecf2 phpmyadmin/phpmyadmin:latest «/docker-entrypoint.…» 3 hours ago Up 3 hours 80/tcp ermac_panel_myadmin
1032845a538e www_golang «./server_go» 3 hours ago Up 3 hours 0.0.0.0:3434->3434/tcp, [::]:3434->3434/tcp ermac_golang
b1fa9b571363 www_backend «docker-entrypoint p…» 3 hours ago Up 3 hours 9000/tcp www_backend_1
4270fe02ea4e www_nginx_frontend «/docker-entrypoint.…» 3 hours ago Up 3 hours 0.0.0.0:80->80/tcp ermac_panel_nginx_frontend
a06a2f733f48 mysql:5.7.25 «docker-entrypoint.s…» 3 hours ago Up 3 hours 0.0.0.0:3306->3306/tcp, [::]:3306->3306/tcp, 33060/tcp ermac_panel_mysql
4259517d0a80 www_nginx «nginx -g ’daemon of…» 3 hours ago Up 3 hours 0.0.0.0:8081->80/tcp ermac_panel_nginx
root@24683:~#
Вот на этом примере можешь дать команды для выполнения?
4270fe02ea4e www_nginx_frontend «/docker-entrypoint.…» 3 hours ago Up 3 hours 0.0.0.0:80->80/tcp ermac_panel_nginx_frontend
Ятак понимаю это надо править?
нет совсем неправильно. Так микро ликбез: В контейнеризации есть несколько сущностей: images - это образы операционных систем c некоторым программным содержимым (просто файлы на диске), containers - это запущенные операционные системы выполняющие конкретные задачи (запущен сервер баз данных, запущен веб сервер, запущена какая-то пользовательская программа), они существуют только пока запущены. volumes - хранилища, монтируемое пространство жестких дисков именные или без именные в которых хранятся данные результат работы контейнера (сам контейнер никак не изменяется, например mysql хранит свои данные внутри некоторого volume), networks - виртуальные сети, которые связывают между собой компьютеры. Т.е, для простоты, можешь считать что каждый запущенный контейнер - это отдельный компьютер и все они могут находится как в одной, так и в нескольких виртуальных компьютерных сетях. docker images - покажет тебе список образов, docker ps - список текущих работающих контейнеров, docker volume ls - список хранилищ, docker network ls - список сетей. Контейнеры запускаются по сценарию - это твой docker-compose.yaml. Теперь сами по себе контейнеры не запустятся (если их кто то не запустил вручную docker-compose up -d) - значит тебе надо узнать как они были запущены. Скорее всего кто то написал файл службы systemd unit, эти файлы обычно хранятся в /etc/systemd/system - внимательно иследуй эту директорию вдруг ты найдешь там файл с именем, который напоминает ваш программный комплекс
ну вроде ничего такого нет. значит топаешь в папку с docke-compose.yaml, останавливаешь контейнеры docker-compose down, ждешь пару минут, для надежности, и убеждаешься что они не перезапустились docker ps, правишь yaml и запускаешь обратно dokcer-compose up -d
Я пробывал там менять на свой порт и инсталлировать по новой
Да, тебе там надо поменять порт, docker compose down (удолит все контейнеры) и потом заново «инсталлировать» как ты делал. Ты бы лучше у чатгпт спросил, а то насуют тут тебе)