Как получить номера портов для сервиса - Docker compose file - PullRequest
0 голосов
/ 10 июня 2019

Я пытаюсь запустить контейнеры с помощью docker-compose.yml.Я пытаюсь запустить две службы, одна из которых mongo , а другая - Просмотрщик OHIF .

В настоящее время я могу получить доступ к mongo локально (localhost: 27017 (после порта).переадресация) на рабочем столе, тогда как средство просмотра OHIF невозможно (порты не видны / пусты, поэтому я не могу получить к ним локальный доступ). Можете ли вы указать мне, как их настроить?

enter image description here

Как вы можете видеть из моего файла docker-compose, я установил network_mode: "host", чтобы иметь возможность локального доступа к ним и на моем рабочем столе.

Исходя из моего файла json, я подумал, что порт уже установлен (pacsIP: 8042), но он отсутствует, как показано на скриншоте выше, когда я выполняю команду "docker ps". Можете ли вы мне помочь в этом? Я новичок в dockerи ваши входные данные, безусловно, будут полезны. PACSIP - это IP-адрес моего хоста докера (удаленного сервера Linux). Я бы хотел перенести их и перенести их на мой рабочий стол

Пожалуйста, найдите ниже docker-compose.yml file

version: '3.6'
   services:
     mongo:
       image: "mongo:latest"
    container_name: ohif-mongo
   ports:
     - "27017:27017"

   viewer:
     image: ohif/viewer:latest
      container_name: ohif-viewer
      ports:
        - "3030:80"
        - "8042:8042" - # Not sure whether this is correct. I tried with and without this as well but it didn't work
      network_mode: "host"   
      environment:
         - MONGO_URL=mongodb://mongo:27017/ohif
      extra_hosts:
          - "pacsIP:172.xx.xxx.xxx"
      volumes:
         - ./dockersupport-app.json:/app/app.json

Как вы можетеЯ не вижу, что в томах я использую файл dockersupport-app.json , который указан ниже

{
   "apps" : [{
   "name"        : "ohif-viewer",
    "script"      : "main.js",
    "watch"       : true,
    "merge_logs"  : true,
    "cwd"         : "/app/bundle/",
    "env": {
    "METEOR_SETTINGS": {
              "servers": {
                "dicomWeb": [
                                    {
                    "name": "Orthanc",
                    "wadoUriRoot": "http://pacsIP:8042/wado", # these ports 
                    "qidoRoot": "http://pacsIP:8042/dicom-web", #these ports
                    "wadoRoot": "http://pacsIP:8042/dicom-web", #these ports
                    "qidoSupportsIncludeField": false,
                    "imageRendering": "wadouri",
                    "thumbnailRendering": "wadouri",
                    "requestOptions": {
                      "auth": "orthanc:orthanc",
                      "logRequests": true,
                      "logResponses": false,

Как я могу получить доступ к OHIF-Viewer локально?Какие изменения я должен внести в файл docker-compose.yml или json?Я сделал с портом 8042 и без него в разделе «Порты» файла docker-compose, но он все еще не работал.

Ответы [ 2 ]

1 голос
/ 10 июня 2019

Если вы используете network_mode: host, он обходит все стандартные сети Docker. В данном случае это включает сопоставления портов: поскольку контейнер напрямую использует сетевой интерфейс хоста, нечего сопоставлять per se .

network_mode: host почти никогда не требуется, и я бы удалил его здесь. Это должно сделать порты видимыми в выводе docker ps снова и сделать переназначенный порт 3030 доступным. Таким образом, вы, вероятно, можете подключиться к своему сервису через порт 80, который предположительно связан с сервисом, непосредственно в сети хоста.

1 голос
/ 10 июня 2019

Использовали ли вы docker-compose run или docker-compose up?

Согласно документации docker : команда docker-compose run не создает ни один из портов, указанных в конфигурации службы."

Попробуйте использовать команду docker-compose up.

...