如何在Docker中从挂载的卷运行bash脚本并将该端口暴露在容器外部?
Dockerfile包含
FROM java:8
Iam通过以下命令将我的主机目录挂载到docker中来执行此操作
docker run -it -p 8585:9090 -v ~/Docker/:/data d23bdf5b1b1b /data/bin/script.sh
我能够成功地运行,但问题是,当我尝试从浏览器访问它,我无法看到任何因为端口冲突,2服务运行在同一端口..
如何解决这个问题?
你的问题是,你正试图在一个新的容器中运行一个脚本,然后该容器就存在了。 它与正在运行的任何现有容器没有任何关系。
另外,当你指定一个要用docker运行的命令时,它不会运行你在构buildDockerfile时定义的CMD命令。
所以你需要做的是以下。
docker run -d -p 8585:9090 -v ~/Docker/:/data d23bdf5b1b1b
上述容器运行后,将打印新容器的ID。 现在你想在这个新的容器中执行你的命令
docker exec -it <containerid> /data/bin/script.sh