Changes

Docker Swarm on AWS

3,856 bytes added, 15:12, 8 August 2018
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
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
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
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
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]]