0

Ich bin völlig neu bei AWS und auch Docker, aber ich habe herausgefunden, wie man eine Instanz mit AWS erstellt und wie man Docker darauf installiert und ein Docker-Image erstellt. Im Moment laufe ich auf meiner AWS-Instance zwei Images, dla-core und dla-gui.Docker - AWS - Was muss ich als nächstes tun?

Als ich es auf meinem lokalen Docker Quickstart-Terminal ausgeführt habe, konnte ich meine Webanwendung auf IP 192.168.99.100 überprüfen. Aber jetzt muss ich es zu einer Domain.com bringen und ich habe keine Ahnung, was ich als nächstes tun soll. Hast du eine Idee, Zeit (vielleicht für TeamViewer) und Motivation einen verzweifelten Studenten zu unterstützen, der diese Applikation heute auf einer Domain laufen lassen muss? Vielen Dank, Kommentare und Antworten werden auch sehr geschätzt!

enter image description here

Hier ist mein Dockerfile für Kern (Backend):

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"] 

und das ist das Dockerfile von gui (Front-End)

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 

ersten I starte build_core.sh

#/bin/bash 
#mvn clean install 
#JAR_WITH_DEPENDENCIES=`find target/dla-core*.jar -printf "%f"` 
docker build --tag profile/dla-core . 

gefolgt von run_core.sh

#!/bin/bash 
SKETCHPASS_CONFIG="conf/defaults.properties" 
docker rm -f dla-core 
docker run --name dla-core profile/dla-core 

und danach ich gui bewegte: 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 
+1

alle Container zu entfernen: 'Docker rm -v $ (Docker ps -aq)' –

+0

, das gut aussieht. Welchen Fehler haben Sie? Kann Ihr Frontend auf Ihr Backend zugreifen? –

+0

Ja, wenn ich alles wie mit Docker Toolbox Terminal ausgeführt habe, funktioniert alles gut. Ich konnte meine Anwendung auf http: //192.168.99 sehen.100/ Ich habe beide Repos gedrückt, um sie von meiner AWS-EC2-Instanz zu ziehen. Es hat funktioniert, ich kann es ziehen und ich kann die Bilder laufen lassen. Aber ich kann nicht auf meine elastischen IP/DNS zugreifen. Und das ist mein Problem, ich muss meine Webanwendung zugänglich machen. –

Antwort

2

So führen Sie Ihre Andock-Container an Port 80: docker run -d -p 80:80 <docker_image> <command>. Wenn Sie <command> nicht angeben, wird der Standardbefehl verwendet, der im Andockfenster definiert ist. Docker Dokumentation: https://docs.docker.com/engine/reference/commandline/run/

Sie können dann zeigen Sie Ihre Container Lauf docker ps und Sie können die Protokolle anzeigen docker logs <container_name> laufen

Um es von außen zugänglich zu machen, müssen Sie Ihre Instanz Security Group bearbeiten und den Port Ihres App öffnen (Port 80 basierend auf Ihrem Screenshot) zu 0.0.0.0/0, wenn Sie möchten, dass es von überall zugänglich ist. An dieser Stelle sollten Sie in der Lage sein, Ihre Website über die Instanz Public IP zu erreichen.

Dann müssen Sie Ihre Instanz Public IP zu einem A-Eintrag in Ihrem DNS hinzufügen.

+0

Hallo Celine! Ich habe einen Screenshot meiner Sicherheitsgruppe gepostet, habe ich etwas falsch gemacht? Ich kann mit der öffentlichen IP-Instanz der Instanz nicht auf meine Anwendung zugreifen. –

+0

Es sieht gut aus. Es ist 0.0.0.0/0 (nicht 0.0.0.0/80) –

+0

Dann müssen Sie sicherstellen, dass die App auf diesem Port auf Ihrer Instanz ausgeführt wird. Haben Sie Ihren Docker-Container mit etwas wie diesem gestartet: '-p 80: 80'? –

0

1) Führen Sie Andockfensters Behälter mit Host-Port-binden 80.

2) zulassen Port 80 in Sicherheitsgruppe dieser EC2 Instanz zugeordnet.

3) Karte öffentliche IP zu einem Datensatz in AWS Route53

Verwandte Themen