Docker не может подключиться к порту администратора

Привет, я работаю с файлом docker-compose для работы с postgresql и администратором (интерфейс базы данных).

Я следовал инструкции на образе postgres на концентраторе докеров и выполняю стек докера развертывания -c docker-compose.yml postgres_test, но когда я пытаюсь подключиться к 45.77.46.240(ip моего хост-компьютера):8282(порт администратора) с другого компьютера это ответ с 'ERR_CONNECTION_TIMED_OUT'

Интересно, почему я могу подключиться к визуализатору через порт 8080, он работал, но не на администраторе?

Вот мой докер-compose.yml

version: "3"
services:
adminer:
   image: adminer
   restart: always
   ports:
     - "8282:8282"
db:
   image: postgres
   networks:
     - webnet
   environment:
     POSTGRES_PASSWORD: 123
     POSTGRES_USER: postgres
     POSTGRES_DB: real_estate
   volumes:
     - ./init.sql:/docker-entrypoint-initdb.d/init.sql
web:
   # replace username/repo:tag with your name and image details
   image: my_user_name/test_image:image1
   ports:
     - "8081:8081"
   networks:
     - webnet
   environment:
     DB_HOST: db
visualizer:
   image: dockersamples/visualizer:stable
   ports:
     - "8080:8080"
   volumes:
     - "/var/run/docker.sock:/var/run/docker.sock"
   deploy:
      placement:
        constraints: [node.role == manager]
   networks:
     - webnet
networks:
  webnet:

3 ответа

Это еще один ответ на конкретный порт в докере администратора.

      version: "3"
services:
adminer:
   image: adminer
   restart: always
   ports:
   - "8282:8282"
   command:
   - 'php'
   - '-S'
   - '[::]:8282'
   - '-t'
   - '/var/www/html'
   entrypoint:
   - 'entrypoint.sh'
   - 'docker-php-entrypoint'

Это не работает из-за проблемы с портом. Вы настроили его как 8282. Порт администратора по умолчанию - 8080, и вы не можете изменить порт администратора по умолчанию. Поэтому попробуйте со следующим кодом.

      version: "3"
services:
adminer:
   image: adminer
   restart: always
   ports:
     - "8282:8080"
db:
   image: postgres
   networks:
     - webnet
   environment:
     POSTGRES_PASSWORD: 123
     POSTGRES_USER: postgres
     POSTGRES_DB: real_estate
   volumes:
     - ./init.sql:/docker-entrypoint-initdb.d/init.sql
web:
   # replace username/repo:tag with your name and image details
   image: my_user_name/test_image:image1
   ports:
     - "8081:8081"
   networks:
     - webnet
   environment:
     DB_HOST: db
visualizer:
   image: dockersamples/visualizer:stable
   ports:
     - "8080:8080"
   volumes:
     - "/var/run/docker.sock:/var/run/docker.sock"
   deploy:
      placement:
        constraints: [node.role == manager]
   networks:
     - webnet
networks:
  webnet:

Есть несколько вариантов решения, так или иначе, проблема не связана с докером.

Вы должны рассматривать его как процесс, выполняющийся на компьютере через порт 8282. Он доступен только для хост-компьютера. Это не выставлено миру

самое простое решение - использовать ssh tunnel

https://www.ssh.com/ssh/tunneling/example

Другие вопросы по тегам