同事, 我很难运行自己创建的Docker映像。我要容器化的应用程序是一个简单的Windows服务,该服务通过某些端口公开了WebAPI(REST)。它只能在本地正常工作,但不能在容器中工作。我面临以下两个问题:
CMD ["powershell wait-service.ps1 -ServiceName SelfHostService"]
不起作用,因为Docker不喜欢我尝试提交的参数。有什么想法可以解决这个问题吗?答案 0 :(得分:0)
是的,当前台进程退出时,docker容器将退出。如果未运行,则docker会认为该应用程序已停止并关闭了容器。
您没有正确将参数传递给CMD
命令,有关更多信息,请参见docs。文档中的一些示例
CMD ["executable","param1","param2"] (preferred form)
CMD ["param1","param2"] (ad default parameters to ENTRYPOINT)
CMD command param1 param2 (shell form)
我认为您正在尝试从主机而非容器访问localhost:8080/api/welcome
。您只能从容器内部访问localhost
。您可以通过以交互方式运行容器(使用-it
标志)然后访问localhost
来做到这一点。
如果要从主机访问容器,则需要先EXPOSE
8080
中的端口docker image
,然后publish port 8080
。这样,您可以使用http://your_hostname:8080/api/welcome
访问api(假设您在8080上发布了8080端口,例如,使用标志-p 8080:8080
)