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)
① Cliquez sur "Créer une instance"

② 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
 

(local)$ ssh -i key_portfolio_AWS.pem [email protected]
Modifiez key_portfolio_AWS.pem et 18.181.96.192 en fonction de votre situation.
(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
・ ・ ・
(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
(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
(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
(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
(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
(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.

ensuite

Oh! S'il est affiché comme ça, c'est réussi.
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
--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
Cette fois, c'était wordpress. Ensuite, essayons l'application Rails.
・ [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