如何获取服务的端口号 - Docker 撰写文件
How to get the port numbers for a service - Docker compose file
我正在尝试使用 docker-compose.yml 启动容器。我正在尝试启动两项服务,一项是 mongo,另一项是 OHIF viewer.
目前我可以在桌面上本地访问 mongo(本地主机:27017(端口转发后),而 OHIF 查看器是不可能的(端口不是 visible/empty 所以,我是无法在本地访问它们)。你能指导我如何设置它们吗?
正如您从我的 docker-compose 文件中看到的那样,我已将 network_mode:"host" 设置为也能够在我的桌面上本地访问它们。
根据我的 json 文件,我认为端口已经设置 (pacsIP:8042),但当我执行 "docker ps" 命令时,如上面的屏幕截图所示,它丢失了。你能指导我吗?我是 docker 的新手,您的意见肯定会有帮助。 PACSIP 是我的 docker 主机(远程 linux 服务器)IP。我想转发它们并在我的桌面上查看它
请在 docker-compose.yml 文件下方找到
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 文件进行哪些更改?我在 docker-compose 文件的 "Ports" 部分下使用和不使用端口 8042,但它仍然无法正常工作。
你用的是docker-compose run
还是docker-compose up
?
根据docker documentation:"docker-compose run command does not create any of the ports specified in the service configuration."
尝试使用 docker-compose up 命令。
如果您使用 network_mode: host
,它会绕过所有 Docker 的标准网络。在这种情况下,包括端口映射:因为容器直接使用主机的网络接口,所以没有什么可以映射本身。
network_mode: host
几乎从不需要,我会在这里删除它。这应该使端口再次在 docker ps
输出中可见,并使重新映射的端口 3030 可访问。事实上,您可能可以直接在主机网络上的端口 80 上访问您的服务,大概服务绑定到该端口。
我正在尝试使用 docker-compose.yml 启动容器。我正在尝试启动两项服务,一项是 mongo,另一项是 OHIF viewer.
目前我可以在桌面上本地访问 mongo(本地主机:27017(端口转发后),而 OHIF 查看器是不可能的(端口不是 visible/empty 所以,我是无法在本地访问它们)。你能指导我如何设置它们吗?
正如您从我的 docker-compose 文件中看到的那样,我已将 network_mode:"host" 设置为也能够在我的桌面上本地访问它们。
根据我的 json 文件,我认为端口已经设置 (pacsIP:8042),但当我执行 "docker ps" 命令时,如上面的屏幕截图所示,它丢失了。你能指导我吗?我是 docker 的新手,您的意见肯定会有帮助。 PACSIP 是我的 docker 主机(远程 linux 服务器)IP。我想转发它们并在我的桌面上查看它
请在 docker-compose.yml 文件下方找到
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 文件进行哪些更改?我在 docker-compose 文件的 "Ports" 部分下使用和不使用端口 8042,但它仍然无法正常工作。
你用的是docker-compose run
还是docker-compose up
?
根据docker documentation:"docker-compose run command does not create any of the ports specified in the service configuration."
尝试使用 docker-compose up 命令。
如果您使用 network_mode: host
,它会绕过所有 Docker 的标准网络。在这种情况下,包括端口映射:因为容器直接使用主机的网络接口,所以没有什么可以映射本身。
network_mode: host
几乎从不需要,我会在这里删除它。这应该使端口再次在 docker ps
输出中可见,并使重新映射的端口 3030 可访问。事实上,您可能可以直接在主机网络上的端口 80 上访问您的服务,大概服务绑定到该端口。