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!
-#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.
-#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.
-#Docker speichern Bildnamen>Neuer Name.tar
% docker save b3fc1a6f13e6 > myimage.tar
-#Überprüfen Sie die TAR-Datei
% ls
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.
-#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
#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
-#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.
# -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 /".
-#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.
-# $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