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