我是AWS和Docker的新手,但我想出了如何使用AWS创建实例以及如何在其上安装docker以及拉/运行docker镜像。现在,我正在我的AWS-Instance上运行两个图像,dla-core和dla-gui。
当我在本地docker quickstart终端上运行它时,我可以在IP 192.168.99.100上查看我的Web应用程序。但现在我需要将它发送到domain.com,我不知道接下来该做什么。你有任何想法,时间(可能是TeamViewer)和动机来帮助一个绝望的学生今天需要在一个域上运行这个应用程序吗?非常感谢,评论和回复也非常感谢!
这是我的核心的Dockerfile (后端):
FROM maven:3-jdk-8
# Build
ADD . /sketchpass-core
ADD src/main/bash/run.sh /sketchpass-core/
WORKDIR /sketchpass-core
RUN mvn clean install
RUN chmod +x run.sh
# Run
EXPOSE 11337
ENV SKETCHPASS_CONFIG=conf/defaults.properties
CMD ["/sketchpass-core/run.sh"]
那是gui的 Dockerfile (前端)
FROM ubuntu
RUN apt-get update
RUN apt-get install -y python-requests python-flask python-pandas python-pil gunicorn
ADD . /
CMD ["python", "scribble.py"]
EXPOSE 80
首先我要开始build_core.sh
#/bin/bash
#mvn clean install
#JAR_WITH_DEPENDENCIES=`find target/dla-core*.jar -printf "%f"`
docker build --tag profile/dla-core .
后跟run_core.sh
#!/bin/bash
SKETCHPASS_CONFIG="conf/defaults.properties"
docker rm -f dla-core
docker run --name dla-core profile/dla-core
然后我搬到了gui: build_gui.sh
#!/bin/bash
docker build -t profile/dla-gui .
run_gui.sh
#!/bin/bash
docker rm -f dla-gui
docker run --name dla-gui --rm -t -p 80:80 -v `pwd`:/dla-gui -e "SKETCHPASS_DEBUG=true" --link dla-core:backend profile/dla-gui
答案 0 :(得分:2)
在端口80上运行docker容器:docker run -d -p 80:80 <docker_image> <command>
。如果未指定<command>
,它将使用docker镜像中定义的默认命令。 Docker文档:https://docs.docker.com/engine/reference/commandline/run/
然后,您可以显示正在运行docker ps
的容器,并且可以显示正在运行的日志docker logs <container_name>
要使其可从外部访问,您需要编辑实例安全组并打开应用程序的端口(基于屏幕截图的端口80)到0.0.0.0/0,如果您希望可以从任何地方访问它。 此时,您应该能够使用实例Public IP访问您的网站。
然后,您需要将实例公共IP添加到DNS中的A记录。
答案 1 :(得分:0)
1)运行您的docker容器,主机端口绑定为80。
2)允许将安全组中的端口80分配给该EC2实例。
3)将公共IP映射到AWS Route53中的A记录