EC2 sur Docker-compose

Cet article place docker-compose dans une instance EC2 et crée un conteneur pour un serveur Web et un serveur DB. [C'est presque un pakuri de cet article. ](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)

Créer une instance EC2

① Cliquez sur "Créer une instance" Screen Shot 2020-08-31 at 16.24.13.png

② Sélectionnez Amazon Linux 2 gratuitement

③ Sélectionnez "t2.micro (sous réserve du niveau d'utilisation gratuit)"

④ Cliquez sur "Confirmer et créer"

⑤ Enregistrer la clé Si vous ne l'enregistrez pas ici, vous ne pourrez plus le voir, alors assurez-vous de le télécharger.

⑥ Ajouter au groupe de sécurité Type: HTTP (80) Source: 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

Connectez-vous à AWS EC2

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

Modifiez key_portfolio_AWS.pem et 18.181.96.192 en fonction de votre situation.

Installer 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

Déconnectez-vous et reconnectez-vous à EC2.

(ec2-user|~)$ exit  #Se déconnecter

(local)$ ssh -i key_portfolio_AWS.pem [email protected]  #Connectez-vous à nouveau

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

Server:
 Containers: 0
  Running: 0
・ ・ ・

Installez 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

Créer un conteneur pour le stockage de données

(ec2-user|~)$ vi Dockerfile

FROM busybox

#Informations sur le créateur
MAINTAINER 0.1 [email protected]

#Paramètres de données
VOLUME /var/lib/mysql

Créer un conteneur

(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

Démarrer le conteneur

(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

Création de serveurs Web et de conteneurs de serveurs DB

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

docker-compose.ym


web-server:
  image: wordpress

  ports:
    - "80:80"

  #Spécifier un lien de conteneur
  links:
    - "db-server:mysql"

db-server:
  image: mysql

  #Spécifier la destination de sauvegarde des données
  volumes_from:
    - data-only

  #Spécification des variables d'environnement
  environment:
    MYSQL_ROOT_PASSWORD: password

Démarrer le conteneur

(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 fonctionne jusqu'à ce point. Screen Shot 2020-08-31 at 17.13.52.png

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

Oh! S'il est affiché comme ça, c'est réussi.

Vérifiez s'il est monté dans un conteneur de données uniquement

Le montage consiste à «faire reconnaître à l'ordinateur les périphériques et supports connectés à l'ordinateur et à les préparer à l'utilisation».

(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

Autre

--Exemple d'exécution de commande dans un conteneur

(ec2-user|~)$ docker-compose run web-server /bin/bash
root@40e7f18520cb:/var/www/html# 
#sauvegarde
$ docker export data-only > backup.tar

#restaurer
$ tar xvf backup.tar

à partir de maintenant

Cette fois, c'était wordpress. Ensuite, essayons l'application Rails.

Article de référence

・ [Outline](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)

Recommended Posts

EC2 sur Docker-compose
Lancez EC2 Rails
Déployer RAILS sur EC2
Installer docker sur AWS EC2
Erreur lors du déploiement d'EC2 avec CircleCI
Lancer des rails sur EC2 (déploiement manuel)
Installez docker et docker-compose sur Alpine Linux
Monter EFS sur Ubuntu EC2 sur AWS (amazon-efs-utils)
Lancer un conteneur docker sur EC2 (mémorandum personnel)
Commande docker-compose
Erreur lors de l'installation de l'environnement d'exécution de ruby sur l'instance EC2
J'ai installé Docker sur EC2 et l'ai démarré
Installez Java, Apache, Tomcat 9 sur EC2 (Amazon Linux 2)
J'ai essayé d'installer docker sur une instance EC2
Recette pour déployer des applications Rails sur AWS EC2