嘿我想用我的公共IP访问我的docker容器我不知道如何实现这个目标。现在我有一个ec2容器ubuntu 16.04 我正在使用ubuntu的docker镜像。我已经在docker image中安装了apache服务器,我想使用public aws ip访问它。
为此,我尝试过docker run -d -p 80:80 kyo kyo是我的图像名称我可以做到这一点但我需要做什么才能用aws托管这个容器。我知道我只是一个网络的东西,我不知道如何实现这个目标。
答案 0 :(得分:0)
当您通过浏览器访问端口80时获得的是什么?是解决并说出一些错误吗? 如果不检查您的aws安全组策略,则可能需要将端口80列入白名单。
登录容器并查看apache已启动并正在运行。您可以检查正在运行的容器内的开放端口,
netstat -plnt
如果最重要的是清除,则不清楚为什么你无法在外面访问它。如果配置有问题,您可以检查apache日志。
我不确定,如果你需要在Dockerfile中拥有 EXPOSE 参数,那么你是否已经建立了自己的容器。
通过这个, A Brief Primer on Docker Networking Rules: EXPOSE
编辑回答:
您可以通过 ENTRYPOINT 来实现解决方法。
在Dockerfile中使用它并从中构建图像。
CMD [“apachectl”, “-D”, “FOREGROUND”]
或
CMD [“-D”, “FOREGROUND”]
ENTRYPOINT [“apachectl”]