参照Docker官方入门教程操作后,3000端口无法正常访问容器应用
问题根源
你混淆了Docker官方提供的getting-started镜像和你本地编写Dockerfile要构建的自定义镜像:
- 直接使用
getting-started镜像启动容器时,用的是Docker官方预构建的教程镜像,该镜像默认暴露80端口,这就是你执行docker run -dp 3000:80 getting-started时会跳转官方教程页的原因 - 你两次启动容器都没有用到本地编写的Dockerfile,所以一直没有启动你预期的Node应用
解决步骤
- 首先进入存放Dockerfile的
app目录,执行镜像构建命令,注意命令末尾的.不能遗漏,代表构建上下文为当前目录:docker build -t my-getting-started . - 待镜像构建完成后,使用你自己构建的镜像启动容器,你的Dockerfile中定义的Node应用默认监听3000端口,所以端口映射需要对应:
docker run -dp 3000:3000 my-getting-started - 启动后执行
docker ps命令,查看对应容器的STATUS字段是否为正常运行的Up状态,如果容器启动失败,可通过docker logs <容器ID>命令查看日志排查错误 - 确认容器正常运行后,访问
http://localhost:3000即可打开预期的应用页面
内容的提问来源于stack exchange,提问作者Borybar
相关产品推荐
相关产品推荐

