Starten Sie einen Docker-Container auf EC2 (persönliches Memorandum)

Erstellen Sie eine Instanz von Ubuntu in EC2 und erstellen Sie ein Schlüsselpaar

Die Instanzerstellung wird weggelassen

-#Ändern Sie die Berechtigungen für Schlüsselpaare
%chmod 400 Schlüsselpaar.pem
-#ssh Verbindung zur Ubuntu-Instanz herstellen
% ssh -Ich Schlüsselpaar.pem ubuntu@Öffentliches EC2-DNS
yes

Der Zweck der Änderung der Berechtigung des Schlüsselpaars besteht darin, "400" und ** schreibgeschütztes ** Schlüsselpaar zu verwenden, da eine SSH-Verbindung nicht möglich ist, wenn sie versehentlich neu geschrieben wird. Beachten Sie, dass sich das öffentliche DNS von EC2 ändert, indem die Instanz gestoppt und gestartet wird!

Installieren Sie den Docker auf EC2

-#Ich habe keine Zugriffsberechtigung, also aktualisiere mit sudo.
$ sudo apt-get update
-#Docker installieren
$ sudo apt-get install docker.io
-#Drücken Sie Y.
-#Überprüfen der Docker-Version
$ docker -—version

Zu diesem Zeitpunkt hat Ubuntu keine Berechtigung für Docker, daher müssen Sie dem Befehl jedes Mal ** "sudo" ** voranstellen. Erstellen Sie also eine Gruppe namens "Docker" und fügen Sie "Ubuntu" ein. Da "ubuntu" zur Gruppe "Docker" gehört, kann Docker verwendet werden und Befehle können ohne "sudo" verwendet werden.

-#Setzen Sie "Ubuntu" in eine Gruppe namens "Docker"
$ sudo glassed -a ubuntu docker
Adding user ubuntu to group docker
-#Es wird nicht reflektiert, es sei denn, es kommt einmal heraus
$ exit
-#ssh verbinden
% ssh -Ich Schlüsselpaar.pem ubuntu@Öffentliches EC2-DNS
-#Überprüfen Sie den Docker-Befehl
$ docker images

Sie können bestätigen, dass der Docker-Befehl verwendet werden kann.

Komprimieren Sie das Docker-Image auf tar und senden Sie es an EC2

-#Erstellen eines Docker-Images zum Senden an EC2
% mkdir temp_folder
% cd temp_folder
% vim Dockerfile

Dockerfile


FROM alpine
RUN touch test
% docker build .

Erstellen Sie eine leichte alpine und erstellen Sie eine Datei namens "Test" darin.

In TAR-Datei konvertieren

-#Docker speichern Bildnamen>Neuer Name.tar
% docker save b3fc1a6f13e6 > myimage.tar
-#Überprüfen Sie die TAR-Datei
% ls

Greifen Sie über SFTP auf EC2 zu.

Der Befehl, der beim Übertragen von Dateien verwendet werden soll.

-#Geben Sie sftp ein(Der Status, in dem der Host und die Instanz verbunden sind)
% sftp -Ich Schlüsselpaar.pem ubuntu@Öffentliches EC2-DNS
-#Legen Sie den Dateipfad fest, um den Dateipfad an das Ziel zu senden
sftp> put temp_folder /home/ubuntu 
-#Öffnen Sie ein anderes Terminal, wechseln Sie in das Verzeichnis, in dem sich das Schlüsselpaar befindet, und stellen Sie eine SSH-Verbindung her.
% ssh -i mydocker.pem [email protected]
-#Überprüfen Sie, ob eine Datei vorhanden ist
$ ls

Sie können sehen, dass die Datei vom Host auf EC2 übertragen wurde.

Übertragen Sie Dateien von EC2 zum Host

-#Erstellen einer Datei in EC2
$ touch test
-#Öffnen Sie ein anderes Terminal, wechseln Sie zur Hostseite und geben Sie sftp ein
% sftp -Ich Schlüsselpaar.pem ubuntu@Öffentliches EC2-DNS
-#Stellen Sie sicher, dass Sie eine Testdatei haben
sftp> ls
-#Holen Sie sich die Testdatei
sftp> get test
-#Beenden Sie sftp
sftp> exit

Stellen Sie sicher, dass Sie eine "Test" -Datei auf Ihrem Desktop haben

Geben Sie die tat-Datei an das Docker-Image zurück

#ssh verbinden
% ssh -Ich Schlüsselpaar.pem ubuntu@Öffentliches EC2-DNS
# docker load <Kehren Sie mit Teer Faril zum Bild zurück
$ docker load < my image.tar
#Bild bestätigen
$ docker images
# docker run(alpine hat keine bash so sh)
$ docker run -es Bild ID sh
#Bestätigen Sie mit dem Befehl ls, dass die Testdatei vorhanden ist
ls

Senden Sie die Docker-Datei direkt an EC2 und starten Sie sie.

-#Geben Sie sftp ein
% sftp -Ich Schlüsselpaar.pem ubuntu@Öffentliches EC2-DNS
-#Senden Sie Dockerfile mit put. Wenn Sie das Ziel nicht angeben, wird es in das Ausgangsverzeichnis von ubuntu gestellt
%Absoluter Pfad von Put Dockerfile
-#ssh verbinden
% ssh -i mydocker.pem [email protected]
-#Überprüfen Sie die Docker-Datei
$ ls
-#Erstellen eines Build-Kontexts
$ mkdir dsenv_build
-#Dockerfile verschieben
$ mv Dockerfile dsenv_build/
$ cd dsenv_build
-#Starten Sie den Container
$ docker build .

** Speicher (8 GB) ** reicht jedoch nicht zum Erstellen aus.

Überprüfen der Festplattenkapazität des Computers

# -h bei M.,G-Byte-Anzeige
$ 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

Bei 8 GB verwendet "/" bereits 5,1 GB, und der Rest beträgt nur 2,7 GB. Beim Erstellen ist also nicht genügend Speicher zum Erstellen vorhanden. Unter Linux lautet der Speicherort des Docker-Objekts übrigens "/ var / lib / docker /".

EC2-Speicher ändern.

  1. Klicken Sie auf der EC2-Instanzseite auf das Volume "Elastic Block Store".
  2. Überprüfen Sie eine Instanz und ändern Sie die Lautstärke mit "Aktion".
  3. Stellen Sie die Größe auf 20 GB ein.
  4. Aktualisieren Sie den Bildschirm und überprüfen Sie, ob die Größe 20 GB beträgt.
  5. Es wird möglicherweise nicht in der Instanz angezeigt. Starten Sie die Instanz daher neu.

Bauen Sie erneut.

-#SSH-Verbindung
% ssh -i mydocker.pem [email protected]
-#Gehen Sie zum Speicherort der Docker-Datei
$ cd dsenv_build
-#Bauen Sie erneut
$ docker build .
-#Jetzt, da der Speicher 20 GB groß ist, können Sie problemlos erstellen.
$ docker run -v~:/work -p 8888:8888 Bild-ID

Es kann bestätigt werden, dass die Verbindung mit dem öffentlichen EC2-DNS hergestellt werden kann: 8888.

Containerzugriffsrechte

-# $sudo adduser - ID eines beliebigen ID-Benutzernamens(Beachten Sie, dass Benutzer nicht ohne sudo-Berechtigungen erstellt werden können)
-#Ich wurde oft gefragt, aber dieses Mal werde ich alles mit enter weglassen
$ sudo adduser --uid 1111 aaa
-# /home/Verschoben, weil ein Verzeichnis namens aaa erstellt wurde
$ cd /home/aaa
-#Erstellen Sie einen anderen Benutzer
$ sudo adduser --uid 2222 bbb
-#Kehren Sie zum Ausgangsverzeichnis zurück
$ cd /home
-#Überprüfen Sie die Dateiberechtigungen.
$ ls -la
-#Sie können die Berechtigungen der aaa- und bbb-Dateien überprüfen und feststellen, dass aaa nicht in das bbb-Verzeichnis schreiben kann.
-#Geben Sie als aaa-Benutzer ein
docker run -u 1111 -v /home/aaa:/home/aaa -v /home/bbb:/home/bbb -it ubuntu bash
-#ID bestätigen
1111
Sie können bestätigen, dass es als Benutzer von aaa eingegeben wurde.
-#Wechseln Sie in das BBB-Verzeichnis
$ cd /home/bbb
-#Erstelle Datei
$ touch test

Es kann jedoch bestätigt werden, dass es nicht erstellt werden kann, da es keine Schreibberechtigung hat.

Recommended Posts

Starten Sie einen Docker-Container auf EC2 (persönliches Memorandum)
Starten Sie EC2 Rails
Docker-Netzwerk (persönliches Memorandum)
Installieren Sie Docker auf AWS EC2
Erstellen eines Docker-Hosts in AWS mit Docker Machine (persönliches Memorandum)
Rails auf EC2 starten (manuelle Bereitstellung)
Führen Sie PureScript auf einem Docker-Container aus
Docker Memorandum
Führen Sie NordVPN im Docker (Windows) Ubuntu-Container aus
Beginnen Sie mit der Installation von Docker auf EC2 und dem Ausführen von Yellowfin in einem Container
Zusammenfassung des Docker-Verständnisses für Anfänger Until ~ Bis zur Bereitstellung eines Docker-Containers auf einer EC2-Instanz ~
Technisches Memorandum (Docker)
Freiheit auf Docker
Erstellen einer CICD-Pipeline mit Docker (persönliches Memorandum)
Datenverwaltung mit Volume in Docker (persönliches Memorandum)
Ich habe Docker auf EC2 installiert und gestartet
Kleiner Docker Container
Aktualisieren Sie das Container-Image mit KUSANAGI Runs on Docker
Docker-Befehlsmemorandum
Ich habe versucht, Docker auf einer EC2-Instanz zu installieren
EC2 auf Docker-Compose
Redmine auf Docker
Systemctl kann unter Ubuntu nicht in einem Docker-Container verwendet werden
Bereitstellen von Laravel mit Docker auf EC2 unter AWS ① (EC2-Instanz erstellen)
Datenverwaltung mit Docker's bindmount und tmpfs (persönliches Memorandum)
Ein Memorandum bei der Installation von Docker und der Erstellung eines Linux-Containers
Erstellung einer Datenanalyseumgebung mit Docker (persönliches Memorandum)
Docker-Installation unter CentOS 6
Python-Memo auf Docker
Starten Sie MariaDB mit Docker
Installieren Sie Docker auf Manjaro
Stellen Sie RAILS auf EC2 bereit
Docker Befehl persönliche Zusammenfassung
Docker-Container-Nutzungsszene
Stellen Sie Laravel mit Docker auf EC2 unter AWS bereit (Elastic IP Acquisition-Linking).
Stellen Sie Laravel mit Docker auf EC2 unter AWS bereit (Git Clone-Deployment, Migration).
Die Zeit ist falsch mit der Anwendung, die auf dem Docker-Container gestartet wurde
Versuchen Sie Hello World mit einfachem Java im Docker-Container