Lancer un conteneur docker sur EC2 (mémorandum personnel)

Créer une instance d'ubuntu dans EC2 et créer une paire de clés

La création d'instance est omise

-#Modifier les autorisations de paire de clés
%Paire de clés chmod 400.pem
-#ssh se connecter à l'instance ubuntu
% ssh -i paire de clés.pem ubuntu@DNS public EC2
yes

Le but de la modification de l'autorité de la paire de clés est d'utiliser la paire de clés «400» et ** en lecture seule ** car la connexion ssh n'est pas possible si elle est réécrite par erreur. Notez que le DNS public d'EC2 change en ** arrêtant ** et ** démarrant ** l'instance!

Installer docker sur EC2

-#Je n'ai pas d'autorisation d'accès, alors mettez à jour en utilisant sudo.
$ sudo apt-get update
-#installation de docker
$ sudo apt-get install docker.io
-#Appuyez sur Y
-#Vérification de la version du docker
$ docker -—version

À ce stade, ubuntu n'a pas l'autorisation de docker, vous devez donc préfixer la commande avec ** "sudo" ** à chaque fois. Créez donc un groupe appelé "docker" et mettez-y "ubuntu". Ensuite, puisque "ubuntu" appartient au groupe "docker", le docker peut être utilisé et les commandes peuvent être utilisées sans "sudo".

-#Mettez "ubuntu" dans un groupe appelé "docker"
$ sudo glassed -a ubuntu docker
Adding user ubuntu to group docker
-#Il ne sera pas reflété à moins qu'il ne sort une fois
$ exit
-#connexion ssh
% ssh -i paire de clés.pem ubuntu@DNS public EC2
-#Vérifiez la commande docker
$ docker images

Vous pouvez confirmer que la commande docker peut être utilisée.

Compresser l'image Docker en tar et l'envoyer vers EC2

-#Créer une image Docker à envoyer à EC2
% mkdir temp_folder
% cd temp_folder
% vim Dockerfile

Dockerfile


FROM alpine
RUN touch test
% docker build .

Créez un alpin léger et créez un fichier appelé "test" dedans.

Convertir en fichier tar

-#docker enregistrer le nom de l'image>Nouveau nom.tar
% docker save b3fc1a6f13e6 > myimage.tar
-#Vérifier le fichier tar
% ls

Accédez à EC2 en utilisant SFTP.

La commande à utiliser lors du transfert de fichiers.

-#Entrez sftp(L'état où l'hôte et l'instance sont connectés)
% sftp -Je clé paire.pem ubuntu@DNS public EC2
-#mettre le chemin du fichier pour envoyer le chemin du fichier à la destination
sftp> put temp_folder /home/ubuntu 
-#Ouvrez un autre terminal, accédez au répertoire où se trouve la paire de clés et établissez une connexion ssh.
% ssh -i mydocker.pem [email protected]
-#Vérifiez s'il y a un fichier
$ ls

Vous pouvez voir que le fichier a été transféré de l'hôte vers EC2.

Transférer des fichiers d'EC2 vers l'hôte

-#Créer un fichier dans EC2
$ touch test
-#Ouvrez un autre terminal, passez du côté hôte, entrez sftp
% sftp -Je clé paire.pem ubuntu@DNS public EC2
-#Assurez-vous d'avoir un fichier de test
sftp> ls
-#Obtenez le fichier de test
sftp> get test
-#Quitter sftp
sftp> exit

Assurez-vous d'avoir un fichier «test» sur votre bureau

Renvoyer le fichier tat à l'image du docker

#connexion ssh
% ssh -i paire de clés.pem ubuntu@DNS public EC2
# docker load <Retour à l'image avec le tar Faril
$ docker load < my image.tar
#Confirmer l'image
$ docker images
# docker run(alpine n'a pas de bash donc sh)
$ docker run -it ID d'image sh
#Confirmez que le fichier de test existe avec la commande ls
ls

Envoyez le Dockerfile directement à EC2 et lancez-le.

-#Entrez sftp
% sftp -Je clé paire.pem ubuntu@DNS public EC2
-#Envoyez Dockerfile avec put, si vous ne spécifiez pas la destination, il sera placé dans le répertoire personnel d'ubuntu
%Chemin absolu de put Dockerfile
-#connexion ssh
% ssh -i mydocker.pem [email protected]
-#Vérifiez le Dockerfile
$ ls
-#Créer un contexte de construction
$ mkdir dsenv_build
-#Déplacer Dockerfile
$ mv Dockerfile dsenv_build/
$ cd dsenv_build
-#Lancer le conteneur
$ docker build .

Cependant, ** le stockage (8 Go) ** est insuffisant pour la construction.

Vérification de la capacité du disque de l'ordinateur

# -h à M,Affichage G-byte
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            476M     0  476M   0% /dev
tmpfs            98M  768K   98M   1% /run
/dev/xvda1      7.7G  5.1G  2.7G  66% /
tmpfs           490M     0  490M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           490M     0  490M   0% /sys/fs/cgroup
/dev/loop0       97M   97M     0 100% /snap/core/9804
/dev/loop1       29M   29M     0 100% /snap/amazon-ssm-agent/2012
tmpfs            98M     0   98M   0% /run/user/1000

Avec 8 Go, "/" utilise déjà 5.1G, et le reste n'est que de 2.7GB, donc lors de la construction, il n'y a pas assez de stockage à construire. Par ailleurs, dans le cas de Linux, l'emplacement de stockage de l'objet Docker est "/ var / lib / docker /".

Changer le stockage EC2.

  1. Cliquez sur le volume "Elastic Block Store" sur la page d'instance EC2.
  2. Vérifiez n'importe quelle instance et changez le volume avec "Action".
  3. Définissez la taille sur 20 Go.
  4. Actualisez l'écran et vérifiez que la taille est de 20 Go.
  5. Cela peut ne pas être reflété dans l'instance, alors redémarrez l'instance.

Construisez à nouveau.

-#connexion ssh
% ssh -i mydocker.pem [email protected]
-#Accédez à l'emplacement du Dockerfile
$ cd dsenv_build
-#Construire à nouveau
$ docker build .
-#Maintenant que le stockage est de 20 Go, vous pouvez créer sans aucun problème.
$ docker run -v~:/work -p 8888:8888 ID de l'image

Il peut être confirmé que la connexion peut être établie avec le DNS public EC2: 8888.

Droits d'accès aux conteneurs

-# $sudo adduser —uid n'importe quel nom d'utilisateur ID(Notez que les utilisateurs ne peuvent pas être créés sans les privilèges sudo)
-#On m'a beaucoup demandé, mais cette fois je vais tout omettre avec enter
$ sudo adduser --uid 1111 aaa
-# /home/Déplacé car un répertoire appelé aaa a été créé
$ cd /home/aaa
-#Créer un autre utilisateur
$ sudo adduser --uid 2222 bbb
-#Revenir au répertoire de base
$ cd /home
-#Vérifiez les autorisations des fichiers.
$ ls -la
-#Vous pouvez vérifier les permissions des fichiers aaa et bbb, et vous pouvez voir que aaa ne peut pas écrire dans le répertoire bbb.
-#Entrez en tant qu'utilisateur aaa
docker run -u 1111 -v /home/aaa:/home/aaa -v /home/bbb:/home/bbb -it ubuntu bash
-#Confirmer l'identifiant
1111
Vous pouvez confirmer qu'il est entré en tant qu'utilisateur de aaa.
-#Déplacer vers le répertoire bbb
$ cd /home/bbb
-#Créer un fichier
$ touch test

Cependant, il peut être confirmé qu'il ne peut pas être créé car il n'a pas l'autorisation d'écriture.

Recommended Posts

Lancer un conteneur docker sur EC2 (mémorandum personnel)
Lancez EC2 Rails
Docker Machine (Mémorandum personnel)
Réseau Docker (mémorandum personnel)
Installer docker sur AWS EC2
Création d'un hôte Docker sur AWS à l'aide de Docker Machine (mémorandum personnel)
Lancer des rails sur EC2 (déploiement manuel)
Exécuter PureScript sur un conteneur Docker
Mémorandum Docker
Exécutez NordVPN dans le conteneur Ubuntu Docker (Windows)
Commencer par installer Docker sur EC2 et exécuter Yellowfin dans un conteneur
Résumé de la compréhension de Docker par les débutants ⑤ ~ Jusqu'au déploiement d'un conteneur Docker sur une instance EC2 ~
Mémorandum technique (Docker)
Liberty sur Docker
Construire un pipeline CICD à l'aide de Docker (mémorandum personnel)
Gestion des données à l'aide du volume dans Docker (mémorandum personnel)
J'ai installé Docker sur EC2 et l'ai démarré
Petit conteneur Docker
Mettre à jour l'image du conteneur avec KUSANAGI s'exécute sur Docker
Mémorandum de commande Docker
J'ai essayé d'installer docker sur une instance EC2
EC2 sur Docker-compose
Redmine sur Docker
Systemctl ne peut pas être utilisé sur Ubuntu dans un conteneur Docker
Déployer laravel à l'aide de docker sur EC2 sur AWS ① (Créer une instance EC2)
Gestion des données à l'aide de Bindmount de Docker et de tmpfs (mémorandum personnel)
Un mémorandum lors de l'installation de Docker et de la construction d'un conteneur Linux
Construction d'un environnement d'analyse de données avec Docker (mémorandum personnel)
Installation de Docker sur CentOS 6
mémo python sur docker
Lancez MariaDB avec Docker
Installez Docker sur Manjaro
Déployer RAILS sur EC2
résumé personnel de la commande docker
Scène d'utilisation du conteneur Docker
Déployez laravel à l'aide de docker sur EC2 sur AWS ② (Elastic IP acquisition-binding)
Déployer laravel à l'aide de docker sur EC2 sur AWS ④ (git clone-deploy, migration)
L'heure ne va pas avec l'application lancée sur le conteneur Docker
Essayez Hello World en utilisant Java brut sur le conteneur Docker