EC2 auf Docker-Compose

Dies ist ein Artikel, der Docker-Compose in eine EC2-Instanz einfügt und einen Container für einen Webserver und einen DB-Server erstellt. [Es ist fast ein Pakuri dieses Artikels. ](Https://qiita.com/yumatsud/items/33bc22f7d8f640a286f4#web%E3%82%B5%E3%83%BC%E3%83%90%E3%81%A8db%E3%82%B5%E3% 83% BC% E3% 83% 90% E3% 81% AE% E3% 82% B3% E3% 83% B3% E3% 83% 86% E3% 83% 8A% E4% BD% 9C% E6% 88% 90)

Erstellen einer EC2-Instanz

① Klicken Sie auf "Instanz erstellen". Screen Shot 2020-08-31 at 16.24.13.png

② Wählen Sie Amazon Linux 2 kostenlos aus

③ Wählen Sie "t2.micro (vorbehaltlich der kostenlosen Nutzungsstufe)".

④ Klicken Sie auf "Bestätigen und erstellen".

⑤ Schlüssel speichern Wenn Sie es hier nicht speichern, können Sie es nicht mehr sehen. Laden Sie es daher unbedingt herunter.

⑥ Zur Sicherheitsgruppe hinzufügen Typ: HTTP (80) Quelle: 0.0.0.0/0 Screen Shot 2020-08-31 at 16.34.17.png Screen Shot 2020-08-31 at 16.34.55.png

Melden Sie sich bei AWS EC2 an

(local)$ ssh -i key_portfolio_AWS.pem [email protected]

Ändern Sie key_portfolio_AWS.pem und 18.181.96.192 entsprechend Ihrer Situation.

Installieren Sie Docker

(ec2-user|~)$ sudo yum update

(ec2-user|~)$ sudo yum install -y docker

(ec2-user|~)$ sudo service docker start
Redirecting to /bin/systemctl start docker.service

(ec2-user|~)$ sudo usermod -a -G docker ec2-user

(ec2-user|~)$ cat /etc/group |grep docker
docker:x:993:ec2-user

Melden Sie sich ab und wieder bei EC2 an.

(ec2-user|~)$ exit  #Ausloggen

(local)$ ssh -i key_portfolio_AWS.pem [email protected]  #Nochmal anmelden

(ec2-user|~)$ docker info
Client:
 Debug Mode: false

Server:
 Containers: 0
  Running: 0
・ ・ ・

Installieren Sie Docker-compose

(ec2-user|~)$ sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

(ec2-user|~)$ sudo chmod +x /usr/local/bin/docker-compose

(ec2-user|~)$ docker-compose --version
docker-compose version 1.16.1, build 6d1ac21

Erstellen eines Containers zur Datenspeicherung

(ec2-user|~)$ vi Dockerfile

FROM busybox

#Informationen zum Ersteller
MAINTAINER 0.1 [email protected]

#Dateneinstellungen
VOLUME /var/lib/mysql

Container erstellen

(ec2-user|~)$ docker build -t data-only .
Sending build context to Docker daemon  9.216kB
Step 1/3 : FROM busybox
latest: Pulling from library/busybox
61c5ed1cbdf8: Pull complete 
Digest: sha256:4f47c01fa91355af2865ac10fef5bf6ec9c7f42ad2321377c21e844427972977
Status: Downloaded newer image for busybox:latest
 ---> 018c9d7b792b
Step 2/3 : MAINTAINER 0.1 [email protected]
 ---> Running in 3b3dcfb4036b
Removing intermediate container 3b3dcfb4036b
 ---> 314a9cc31b09
Step 3/3 : VOLUME /var/lib/mysql
 ---> Running in 24ff3d39dd8a
Removing intermediate container 24ff3d39dd8a
 ---> 16e1b09a9faf
Successfully built 16e1b09a9faf
Successfully tagged data-only:latest

(ec2-user|~)$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
data-only           latest              16e1b09a9faf        7 seconds ago       1.22MB
busybox             latest              018c9d7b792b        4 weeks ago         1.22MB

Container starten

(ec2-user|~)$ docker run -it --name data-only data-only

/ # ls
bin   dev   etc   home  proc  root  sys   tmp   usr   var

/ # exit

(ec2-user|~)$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
475afb3d38f8        data-only           "sh"                15 seconds ago      Exited (0) 6 seconds ago                       data-only

Erstellung von Webserver- und DB-Server-Containern

(ec2-user|~)$ vi docker-compose.yml

docker-compose.ym


web-server:
  image: wordpress

  ports:
    - "80:80"

  #Angeben eines Container-Links
  links:
    - "db-server:mysql"

db-server:
  image: mysql

  #Geben Sie das Ziel für die Datenspeicherung an
  volumes_from:
    - data-only

  #Umgebungsvariablen angeben
  environment:
    MYSQL_ROOT_PASSWORD: password

Container starten

(ec2-user|~)$ docker-compose up -d

(ec2-user|~)$ docker-compose ps
        Name                      Command               State          Ports       
-----------------------------------------------------------------------------------
ec2user_db-server_1    docker-entrypoint.sh mysqld      Up      3306/tcp, 33060/tcp
ec2user_web-server_1   docker-entrypoint.sh apach ...   Up      0.0.0.0:80->80/tcp 

WordPress läuft bis zu diesem Punkt. Screen Shot 2020-08-31 at 17.13.52.png

Dann Screen Shot 2020-08-31 at 17.15.11.png

Oh! Wenn es so angezeigt wird, ist es erfolgreich.

Überprüfen Sie, ob es in einem Nur-Daten-Container bereitgestellt ist

Bei der Montage wird "der Computer die an den Computer angeschlossenen Geräte und Medien erkennen und einsatzbereit machen".

(ec2-user|~)$ docker start -ia data-only
/ # ls /var/lib/mysql
#ib_16384_0.dblwr   auto.cnf            binlog.index        client-cert.pem     ib_logfile0         ibtmp1              performance_schema  server-cert.pem     undo_001
#ib_16384_1.dblwr   binlog.000001       ca-key.pem          client-key.pem      ib_logfile1         mysql               private_key.pem     server-key.pem      undo_002
#innodb_temp        binlog.000002       ca.pem              ib_buffer_pool      ibdata1             mysql.ibd           public_key.pem      sys                 wordpress
/ # exit

Andere

(ec2-user|~)$ docker-compose run web-server /bin/bash
root@40e7f18520cb:/var/www/html# 

--Sichern und Wiederherstellen eines dedizierten Datencontainers

#Backup
$ docker export data-only > backup.tar

#wiederherstellen
$ tar xvf backup.tar

von jetzt an

Diesmal war es WordPress. Als nächstes probieren wir die Rails-App aus.

Referenzartikel

Recommended Posts

EC2 auf Docker-Compose
Starten Sie EC2 Rails
Stellen Sie RAILS auf EC2 bereit
Installieren Sie Docker auf AWS EC2
Fehler beim Bereitstellen von EC2 mit CircleCI
Rails auf EC2 starten (manuelle Bereitstellung)
Installieren Sie Docker und Docker-Compose unter Alpine Linux
Mounten Sie EFS unter Ubuntu EC2 unter AWS (amazon-efs-utils)
Starten Sie einen Docker-Container auf EC2 (persönliches Memorandum)
Befehl docker-compose
Fehler beim Installieren der Ruby-Ausführungsumgebung auf der EC2-Instanz
Ich habe Docker auf EC2 installiert und gestartet
Installieren Sie Java, Apache, Tomcat 9 auf EC2 (Amazon Linux 2)
Ich habe versucht, Docker auf einer EC2-Instanz zu installieren
Rezept für die Bereitstellung von Rails-Apps unter AWS EC2