7,540
edits
Changes
no edit summary
[[Docker|<< Back to Docker main]]
:[[File:ClipCapIt-180713-002227.PNG]]
https://docs.docker.com/machine/examples/aws/#step-1-sign-up-for-aws-and-configure-credentials<br>
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html
===User létrehozása===Ahhoz hogy a docker-machine be tudjon lépni az AWS account-unkba, létre kell hozni egy IAM (Identity and Access Management) adminisztrátor jogú user-t.https://console.aws.amazon.com/iam:[[File:ClipCapIt-180712-223124.PNG]]A user létrehozása közben kapni fogunk egy '''access-id'''-t és egy egy titkos kulcsot. Ezt a kettőt kell majd megadni a docker-machine-nak. <br>Létre kell hozni egy '''credentials''' fájlt a .aws mappában. Alapértelmezetten itt keresni majd az aws driver. Másoljuk bele az id-t és a kulcsot: ~/.aws/credentials<pre>[default]aws_access_key_id = AKIAJ622JUHS4RIJOI3Aaws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXX</pre><br>===VM létrehozása===Az amaozon driver alapértelmezetten benne van a docker-machine-ben, nem kell külön telepíteni mint a [[Docker_Machine#Install_softwares|KVM]] esetén láttuk. Ha ingyenes VM-et akarunk megadni, akkor használjuk a t2.micro típust. <br>Meg kell adni, hogy melyik klászterben van az amazon előfizetésünk. Ez az EC2 Dashboard-on is látszik, illetve az URL-ből is (https://ap-southeast-1.console.aws.amazon.com). A minek a szingapúri 1-es ben van. <br>Ezen felül fontos hogy megadjuk, hogy az új VM-en melyik portok legyenek nyitva. Alapértelmezetten csak a 22 SSH és a 2375 Docker port van nyitva. <br>Az amaznec2 driver alapértelmezetten ubuntu image-t telepít az új VM-ekre.
<pre>
# docker-machine create --driver amazonec2 \
To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env docker-sendbox
</pre>
<br>
===Mi jött létre===
Az EC2 konzolon láthatjuk, hogy létrejött az új VM-ün docker-sendbox néven, amit megadtunk a docker-machine parancsban.
:[[File:ClipCapIt-180712-221828.PNG]]
Láthatjuk, hogy 2476 docker port, a 22 SSH port és az általunk megadott 8080 port van nyitva. Ide fogjuk rákötni az apache-ot.
:[[File:ClipCapIt-180712-222037.PNG]]
Láthatjuk az Amazon által, a VM-hez rendelt publikus IP címet és domain nevet.
:[[File:ClipCapIt-180712-222143.PNG]]
<br>
Ha listázzuk a saját hostunkon a docker gépeket, láthatjuk, hogy regisztrálta nálunk a docker-sendbox nevű VM-et, ami az előző képen is látható publikus IP címen (54.169.84.170) érhető el amzaonec2 driverrel futtatva.
<pre>
# docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
docker-sendbox - amazonec2 Running tcp://54.169.84.170:2376 v18.05.0-ce
</pre>
<br>
Bámulatos, de a lokális gépünkről a docker-machine ssh paranccsal be tudunk lépni minden további nélkül az új docker-es VM-re, anélkül hogy bármilyen IP címet vagy felhasználó nevet meg kéne adni. Ez azért lehetséges, mert a docker-machine elhelyezett az új VM-en egy publikus SSH kulcsot, a privát párját meg a mi hostunkon. <br>
Láthatjuk, hogy tényleg '''Ubuntu 16.04.2''' verzió van az új VM-en.
<pre>
# docker-machine ssh docker-sendbox
Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-1020-aws x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud
184 packages can be updated.
92 updates are security updates.
ubuntu@docker-sendbox:~$
</pre>
<br>
===Apache telepítése===
Az új VM-re telepítsünk fel egy apache-t, és a 80-as portját irányítsuk a VM 8080 portjára, ami publikusan is elérhető port az amazonon, mivel így hoztuk létre a VM-et.
<pre>
ubuntu@docker-sendbox1:~$ sudo docker run -dit --name apache -p 8080:80 httpd:2.4
Unable to find image 'httpd:2.4' locally
2.4: Pulling from library/httpd
1c7fe136a31e: Pull complete
72d2d593b3a7: Pull complete
96cd507e10fd: Pull complete
ec6bb3492a46: Pull complete
0ea3a980fa47: Pull complete
ebe42c0aa1a8: Pull complete
a640bae86fe0: Pull complete
Digest: sha256:963ecd717afb125c7a867d82d6935930bb93acc5078ea8bc37854d4b4de766d9
Status: Downloaded newer image for httpd:2.4
21b8f150ed88434b73a95e47a4a07c78859965c19325b08578b11aca3dcc4761
</pre>
<br>
Nézzük meg, hogy tényleg fut e az apache konténer a VM-en:
<pre>
ubuntu@docker-sendbox:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2d6843f4f464 httpd:2.4 "httpd-foreground" 41 seconds ago Up 40 seconds 0.0.0.0:8080->80/tcp apache
</pre>
<br>
Most írjuk be a böngészőbe az EC2-s konzolon mutatott domain nevet a 8080 porttal, ahol az apache-nak kell hallgatóznia. Ekkor be kell jöjjön a http image alapértelmezett oldala, ahogy az a képen is látható
:[[File:ClipCapIt-180712-222716.PNG]]
<br>
===VM törlése===
Az EC2-es VM-et a lokális hosztunkrol ki lehet törölni az '''rm''' (--force) paranccsal. Ekkor a mi docker-ünkből és az amazon-rol is törli:
<pre>
# docker-machine rm -f docker-sendbox
About to remove docker-sendbox1
WARNING: This action will delete both local reference and remote instance.
Successfully removed docker-sendbox1
</pre>
Láthatjuk, hogy az '''rm''' parancs kiadása után shutting-down állapotba került a VM:
:[[File:ClipCapIt-180712-223320.PNG]]
Majd terminated állapotba. (A terminated VM-ek kb 20 perc után eltűnnek az '''Instances''' listáról.
:[[File:ClipCapIt-180712-223438.PNG]]