如何从docker中挂载的卷运行bash脚本并将端口暴露在容器外部?

时间:2017-09-02 05:44:47

标签: docker dockerfile

Dockerfile包含

FROM java:8 

通过按照命令

将主机目录挂载到docker中来运行此操作
docker run -it -p 8585:9090 -v ~/Docker/:/data d23bdf5b1b1b /data/bin/script.sh

我能够成功运行但问题是当我尝试从浏览器访问它时由于端口冲突而无法看到任何内容 ,2个服务在同一个端口上运行..

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您的问题是您尝试在新容器中运行脚本,然后该容器存在。它与正在运行的任何现有容器无关。

此外,当您指定要使用docker运行的命令时,它将不会运行您在构建Dockerfile时定义的CMD命令。

所以你需要做的就是下面。

docker run -d -p 8585:9090 -v ~/Docker/:/data d23bdf5b1b1b

运行上述容器后,将打印新容器的ID。现在,您要在此新容器中执行命令

docker exec -it <containerid> /data/bin/script.sh