<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hu">
	<id>https://admin.wiki.kzoli.hu/index.php?action=history&amp;feed=atom&amp;title=Docker_host_telep%C3%ADt%C3%A9se_%2822.04_LTS%29</id>
	<title>Docker host telepítése (22.04 LTS) - Laptörténet</title>
	<link rel="self" type="application/atom+xml" href="https://admin.wiki.kzoli.hu/index.php?action=history&amp;feed=atom&amp;title=Docker_host_telep%C3%ADt%C3%A9se_%2822.04_LTS%29"/>
	<link rel="alternate" type="text/html" href="https://admin.wiki.kzoli.hu/index.php?title=Docker_host_telep%C3%ADt%C3%A9se_(22.04_LTS)&amp;action=history"/>
	<updated>2026-05-05T20:07:05Z</updated>
	<subtitle>Az oldal laptörténete a wikiben</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://admin.wiki.kzoli.hu/index.php?title=Docker_host_telep%C3%ADt%C3%A9se_(22.04_LTS)&amp;diff=962&amp;oldid=prev</id>
		<title>KZoli, 2023. október 21., 14:03-n</title>
		<link rel="alternate" type="text/html" href="https://admin.wiki.kzoli.hu/index.php?title=Docker_host_telep%C3%ADt%C3%A9se_(22.04_LTS)&amp;diff=962&amp;oldid=prev"/>
		<updated>2023-10-21T14:03:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;hu&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Régebbi változat&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;A lap 2023. október 21., 14:03-kori változata&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;1. sor:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;1. sor:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ebben a leírásban [[Ubuntu szerver alaptelepítés (&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;20&lt;/del&gt;.04 LTS)|alaptelepített]] és [[Ubuntu szerver általános biztonsági beállításai (&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;20&lt;/del&gt;.04 LTS)|biztosított]] szervergépen [https://www.docker.com/ Docker] host környezetet alakítunk ki, amely több, egymástól független standalone (nem [https://en.wikipedia.org/wiki/Orchestration_(computing) orkesztrált]) Docker szolgáltatás (a továbbiakban &#039;&#039;service&#039;&#039;) futtatását és (manuális) menedzselését biztosítja.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ebben a leírásban [[Ubuntu szerver alaptelepítés (&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;22&lt;/ins&gt;.04 LTS)|alaptelepített]] és [[Ubuntu szerver általános biztonsági beállításai (&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;22&lt;/ins&gt;.04 LTS)|biztosított]] szervergépen [https://www.docker.com/ Docker] host környezetet alakítunk ki, amely több, egymástól független standalone (nem [https://en.wikipedia.org/wiki/Orchestration_(computing) orkesztrált]) Docker szolgáltatás (a továbbiakban &#039;&#039;service&#039;&#039;) futtatását és (manuális) menedzselését biztosítja.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;Megjegyzés:&amp;#039;&amp;#039; a standalone megközelítés a cloud világában elavultnak tűnik, azonban - nézetem szerint - kisvállalati környezetben lehet létjogosultsága.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;Megjegyzés:&amp;#039;&amp;#039; a standalone megközelítés a cloud világában elavultnak tűnik, azonban - nézetem szerint - kisvállalati környezetben lehet létjogosultsága.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>KZoli</name></author>
	</entry>
	<entry>
		<id>https://admin.wiki.kzoli.hu/index.php?title=Docker_host_telep%C3%ADt%C3%A9se_(22.04_LTS)&amp;diff=959&amp;oldid=prev</id>
		<title>KZoli: Új oldal, tartalma: „Ebben a leírásban alaptelepített és [[Ubuntu szerver általános biztonsági beállításai (20.04 LTS)|biztosított]…”</title>
		<link rel="alternate" type="text/html" href="https://admin.wiki.kzoli.hu/index.php?title=Docker_host_telep%C3%ADt%C3%A9se_(22.04_LTS)&amp;diff=959&amp;oldid=prev"/>
		<updated>2023-04-12T10:20:05Z</updated>

		<summary type="html">&lt;p&gt;Új oldal, tartalma: „Ebben a leírásban &lt;a href=&quot;/index.php?title=Ubuntu_szerver_alaptelep%C3%ADt%C3%A9s_(20.04_LTS)&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Ubuntu szerver alaptelepítés (20.04 LTS) (a lap nem létezik)&quot;&gt;alaptelepített&lt;/a&gt; és [[Ubuntu szerver általános biztonsági beállításai (20.04 LTS)|biztosított]…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Új lap&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Ebben a leírásban [[Ubuntu szerver alaptelepítés (20.04 LTS)|alaptelepített]] és [[Ubuntu szerver általános biztonsági beállításai (20.04 LTS)|biztosított]] szervergépen [https://www.docker.com/ Docker] host környezetet alakítunk ki, amely több, egymástól független standalone (nem [https://en.wikipedia.org/wiki/Orchestration_(computing) orkesztrált]) Docker szolgáltatás (a továbbiakban &amp;#039;&amp;#039;service&amp;#039;&amp;#039;) futtatását és (manuális) menedzselését biztosítja.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Megjegyzés:&amp;#039;&amp;#039; a standalone megközelítés a cloud világában elavultnak tűnik, azonban - nézetem szerint - kisvállalati környezetben lehet létjogosultsága.&lt;br /&gt;
&lt;br /&gt;
==Docker (standalone hosting, farm) házirend==&lt;br /&gt;
Ebben a leírásban egy standalone szervergépen (nem &amp;#039;&amp;#039;swarm&amp;#039;&amp;#039;-ban) futtatunk egymástól független dockerezett szolgáltatásokat.&lt;br /&gt;
* A szolgáltatásokat egy közös, nem &amp;#039;&amp;#039;sudo&amp;#039;&amp;#039;-képes, dedikált Linux felhasználó (&amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039;) nevében futtatjuk.&lt;br /&gt;
* A szolgáltatásokat kiszolgáló közös scriptek a &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039; HOME/bin könyvtárában találhatóak.&lt;br /&gt;
* A szolgáltatásokhoz kapcsolódó valamennyi egyedi állomány (specifikus kód, karbantartó script, konfiguráció, adat, helyi mentés, log, stb.) egyetlen könyvtárszerkezetben, a &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039; $HOME/services/&amp;lt;szolgáltatás neve&amp;gt; könyvtárban (szolgáltatáskönyvtár) található.&lt;br /&gt;
* A szolgáltatáskönyvtárak azonos skeletonból jönnek létre.&lt;br /&gt;
* Minden szolgáltatást egy-egy, a szolgáltatáskönyvárban megtalálható &amp;#039;&amp;#039;docker-compose.yml&amp;#039;&amp;#039; állomány definiál.&lt;br /&gt;
* A szolgáltatások számára a szervergép &lt;br /&gt;
** közös külső IP-t, &lt;br /&gt;
** hálózati forgalomirányítást, &lt;br /&gt;
** közös web reverse proxyt, &lt;br /&gt;
** SMTP smarthostot (technikai levelezést) és &lt;br /&gt;
** periodikus (napi) mentést (DB dump, fájlterület time machine (git) vagy tar.gz) biztosít.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TODO!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==Reverse web proxy telepítése==&lt;br /&gt;
Amennyiben a telepítés alatti szervergépen még nincs telepítve webszerver, és a leendő szolgáltatások publikus web interface-szel fognak rendelkezni (ez utóbbi csaknem bizonyos), &amp;#039;&amp;#039;opcionálisan&amp;#039;&amp;#039; (de erősen javasoltan) érdemes egy professzionális webszervert reverse proxyként telepíteni a https tanúsítványok egyszerűbb kezelése és a könnyebb biztosíthatóság miatt. A jelen leírásban használandó skeleton az [https://httpd.apache.org/ Apache 2] illetve az [https://httpd.apache.org/ nginx] webszerverekkel képes jól együttműködni.&lt;br /&gt;
===nginx telepítése reverse web proxyként===&lt;br /&gt;
Az nginx a szokásos módon telepíthető:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install nginx --no-install-recommends&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sajnos a telepítés egy [https://bugs.launchpad.net/ubuntu/+source/nginx/+bug/1743592 hiba] miatt elakad, ha az IPv6 le van tiltva. Áthidaló megoldásként, miután a telepítő elakadt, szerkesszük meg az ekkor már telepített &amp;#039;&amp;#039;/etc/nginx/sites-available/default&amp;#039;&amp;#039; állományt:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mcedit /etc/nginx/sites-available/default&amp;lt;/pre&amp;gt;&lt;br /&gt;
és az elején kommentezzük ki az IPv6-os &amp;#039;&amp;#039;listen&amp;#039;&amp;#039; sort:&lt;br /&gt;
&amp;lt;pre&amp;gt;[...]&lt;br /&gt;
server {&lt;br /&gt;
        listen 80 default_server;&lt;br /&gt;
#       listen [::]:80 default_server;&lt;br /&gt;
[...]&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ezután a telepítő parancsot ismét kiadva:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install nginx --no-install-recommends  # no, még egyszer!&amp;lt;/pre&amp;gt;&lt;br /&gt;
a telepítés már hibátlanul végigmegy. A webszerver futását a &lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl status nginx&amp;lt;/pre&amp;gt;&lt;br /&gt;
paranccsal verifikálhatjuk.&lt;br /&gt;
&lt;br /&gt;
A publikus webszolgáltatáshoz szükséges még a bejövő webforgalom beengedése a csomagszűrő tűzfalon:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo ufw allow &amp;quot;Nginx Full&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Gyorstesztként&amp;#039;&amp;#039;&amp;#039; web böngészőprogramban kérjük el a http://IP.IP.IP.IP/ weboldalt (ahol IP.IP.IP.IP a telepítés alatt álló szervergép publikus IP címe, vagy egy erre mutató DNS hostnév) - az nginx alapértelmezett weboldalát kell látnunk.&lt;br /&gt;
&lt;br /&gt;
==Egyéb csomagtelepítések==&lt;br /&gt;
A Docker skeletonnak szüksége van az alábbi, eddig még nem telepített segédeszközökre:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install git metastore socat   # a git általában már telepített, a teljesség kedvéért szerepel itt&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fentiek további beállítást nem igényelnek.&lt;br /&gt;
==A Docker telepítése==&lt;br /&gt;
A Docker (&amp;#039;&amp;#039;community edition&amp;#039;&amp;#039;) telepíthető az Ubuntu repositoryból (&amp;#039;&amp;#039;docker.io, Debian way&amp;#039;&amp;#039;), vagy a &amp;#039;&amp;#039;docker.com&amp;#039;&amp;#039; repositoryból (&amp;#039;&amp;#039;docker-ce, Golang way&amp;#039;&amp;#039;). A fő különbség, hogy a &amp;#039;&amp;#039;docker.ce&amp;#039;&amp;#039; statikusan linkelt (az összes függőségével egybecsomagolva érkezik), míg a &amp;#039;&amp;#039;docker.io&amp;#039;&amp;#039; esetében a függőségeket a Debian/Ubuntu kezeli (ami jelentős erőfeszítést igényel a &amp;#039;&amp;#039;maintainer&amp;#039;&amp;#039;-től). A &amp;#039;&amp;#039;Debian-way&amp;#039;&amp;#039; mellett szólhat a kiterjedtebb security- és tesztelési mechanizmus; ellene szólhat a kétely, hogy képes lesz-e lépést tartani a Docker kiadásaival az LTS támogatás teljes időtartamában. &lt;br /&gt;
&lt;br /&gt;
Mivel mindkét kiadás egyazon operációs rendszer alá nem telepíthető, választanunk kell közülük. Jelen leírásban a &amp;#039;&amp;#039;Debian way&amp;#039;&amp;#039;-t preferálom.&lt;br /&gt;
=== docker.io ===&lt;br /&gt;
A szokásos módon telepíthető:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install docker.io docker-compose  # Sok függőség, elsősorban Python&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ellenőrizzük, hogy elindult-e a szolgáltatás:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl status docker&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ha nem indulna el, engedélyezni kell, majd manuálisan indítható:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl enable --now docker&lt;br /&gt;
sudo systemctl status docker # újabb ellenőrzés&lt;br /&gt;
sudo systemctl start docker  # ha nem futna&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fentiek után az engine elindul, és a szervergép újraindításakor is automatikusan futni kezd.&lt;br /&gt;
&lt;br /&gt;
===docker-ce===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TODO!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==Docker alapbeállítások==&lt;br /&gt;
===Tűzfalbeállítások (UFW) módosítása a Docker használatához===&lt;br /&gt;
Két lényeges problémát kell kezelnünk: &lt;br /&gt;
* Alapértelmezésben az UFW blokkolja a szolgáltatások (Docker image-ek) kommunikációját a host gépen futó szolgáltatásokkal (pl. levélküldés a host MTA-n keresztül). Engedélyezzük a szolgáltatások alhálózatairól és a host gép közötti forgalmat korlátozások nélkül (átgondolni: &amp;#039;&amp;#039;&amp;#039;TODO!&amp;#039;&amp;#039;&amp;#039;):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo ufw allow in  from 172.17.0.0/16 to any comment &amp;#039;From services to host&amp;#039;&lt;br /&gt;
sudo ufw allow out from any to 172.17.0.0/16 comment &amp;#039;From host to services&amp;#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Alapértelmezésben a Docker által exportált portok kívülről láthatóak lesznek annak ellenére, hogy az UFW-ban nem engedélyeztük ezeket az &amp;#039;&amp;#039;in&amp;#039;&amp;#039; szabályokban. Ennek megoldására az [https://github.com/chaifeng/ufw-docker innen] származó (3rd party) &amp;#039;&amp;#039;ufw-docker&amp;#039;&amp;#039; scriptet alkalmazzuk, amely a routing átkonfigurálásával tiltja a fenti forgalmat.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/chaifeng/ufw-docker/archive/refs/heads/master.zip Töltsük le] a projekt legfrissebb verzióját, és a &amp;#039;&amp;#039;.zip&amp;#039;&amp;#039;-ből az &amp;#039;&amp;#039;ufw-docker&amp;#039;&amp;#039; állományt másoljuk a &amp;#039;&amp;#039;/usr/local/sbin&amp;#039;&amp;#039; könyvtárba, majd adjuk a &amp;#039;&amp;#039;root&amp;#039;&amp;#039; tulajdonába, és adjunk rá végrehajtási jogot:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chown root:root /usr/local/sbin/ufw-docker&lt;br /&gt;
sudo chmod 750 /usr/local/sbin/ufw-docker&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ezután telepíttessük a scripttel a routing szabályokat, majd aktiváljuk azokat az UFW újraindításával:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo ufw-docker install&lt;br /&gt;
sudo systemctl restart ufw&amp;lt;/pre&amp;gt;&lt;br /&gt;
A script csak a &amp;#039;&amp;#039;/etc/ufw/rules.after&amp;#039;&amp;#039; állományt módosítja (előtte az eredeti állapotot elmenti). Telepítés után a scriptet csak akkor kell használnunk, ha a blokkolt forgalmak valamelyikét engedélyezni szeretnénk (bővebben ld. a &amp;#039;&amp;#039;README.md&amp;#039;&amp;#039; leírást a fenti weboldalon, vagy a letöltött &amp;#039;&amp;#039;.zip&amp;#039;&amp;#039;-ben). &lt;br /&gt;
&lt;br /&gt;
Gyorsteszt: &amp;#039;&amp;#039;&amp;#039;TODO!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
===Levélküldés engedélyezése a dockerezett szolgáltatások számára===&lt;br /&gt;
Hasznos lehet, ha a szolgáltatások is igénybe vehetik a korábban beállított technikai levélküldést. Ehhez engedélyezzük a &amp;#039;&amp;#039;mail relay&amp;#039;&amp;#039;-t a Postfixben a Docker network-ök felől is:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mcedit /etc/postfix/main.cf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
mynetworks = 127.0.0.0/8 172.16.0.0/12 [...]&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A változtatást a Postfix újraindításával érvényesítsük:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl restart postfix&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==A dockeradmin felhasználó és tárhely elkészítése==&lt;br /&gt;
Ebben a leírásban a Docker szolgáltatások tárhelyeit a szolgáltatásokat menedzselő, közös Linux felhasználó HOME-jában (&amp;#039;&amp;#039;/srv/docker&amp;#039;&amp;#039;) alakítjuk ki. Ennek a tárhelynek megfelelő méretű, futtathatóan és írható-olvashatóan csatolt partíción kell lennie.&lt;br /&gt;
&lt;br /&gt;
A &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039; lényegét tekintve rendszer felhasználó, a gyakorlatban azonban rendszergazdák (emberek) fogják nevében belépve a szolgáltatások karbantartási műveleteit elvégezni. A belépéshez mindenkitől külön-külön (magán) SSH kulcsot fogunk kérni.&lt;br /&gt;
&lt;br /&gt;
* Hozzuk létre a felhasználót az alábbi (&amp;#039;&amp;#039;sudo&amp;#039;&amp;#039;-képes felhasználóként - sysadminként - kiadott) parancsokkal:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo adduser --gecos &amp;quot;Docker Administrator&amp;quot; --home /srv/docker dockeradmin   # kér egy jelszót a felhasználó számára&amp;lt;/pre&amp;gt;&lt;br /&gt;
A jelszó lehetőleg ne triviális, preferáltan generált legyen (pl. [https://passwordsgenerator.net/ innen]). A jelszót csak a &amp;#039;&amp;#039;sudo&amp;#039;&amp;#039;-hoz fogjuk használni (mivel a jelszóval belépést SSH-n letiltottuk, használatával csak a virtuális konzolon lehet belépni).&lt;br /&gt;
&lt;br /&gt;
* Adjuk hozzá a &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039;-t a Docker kezelésére sudo nélkül is jogosultak csoportjához. A házirendtől eltérően jelenleg a Docker adminisztrátor számára is szükséges a &amp;#039;&amp;#039;sudo&amp;#039;&amp;#039;, a host és a szolgáltatások fájlrendszeri jogosultságainak egyeztetése miatt (&amp;#039;&amp;#039;&amp;#039;TODO!&amp;#039;&amp;#039;&amp;#039;):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo usermod -aG docker,sudo dockeradmin  # beállítás&lt;br /&gt;
sudo groups dockeradmin                   # ellenőrzés&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Tegyük priváttá a felhasználó HOME könyvtárát:&lt;br /&gt;
&amp;lt;pre&amp;gt;export user=&amp;#039;dockeradmin&amp;#039; home=&amp;#039;/srv/docker&amp;#039;&lt;br /&gt;
sudo chmod -R o-rwx $home&lt;br /&gt;
sudo chmod g+rwx $home    # feleljen meg az UMASK-nak&lt;br /&gt;
sudo chmod o+x   $home    # szüksége lehet rá a Dockeren belül futó szolgáltatásoknak&lt;br /&gt;
sudo ls -lad $home        # drwxrwx--x dockeradmin dockeradmin /srv/docker&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Módosítsuk a felhasználó profilbeállításait:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mcedit $home/.profile&amp;lt;/pre&amp;gt;&lt;br /&gt;
Szúrjuk be a file végére:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Custom editor.&lt;br /&gt;
export EDITOR=&amp;quot;/usr/bin/mcedit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# More parseable ls -la format.&lt;br /&gt;
export TIME_STYLE=&amp;quot;long-iso&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Megjegyzés:&amp;#039;&amp;#039; a szövegszerkesztő választása természetesen opcionális - bár az alaptelepített nano teljesen használható, részemről az mcedit-et preferálom.&lt;br /&gt;
* Készítsük elő a &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039; számára a nyilvános kulcsú távoli bejelentkezéshez szükséges állományokat:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir $home/.ssh;                 sudo chown $user:$user $home/.ssh&lt;br /&gt;
sudo touch $home/.ssh/authorized_keys; sudo chown $user:$user $home/.ssh/authorized_keys&amp;lt;/pre&amp;gt;&lt;br /&gt;
Amennyiben vannak publikus kulcsaink a &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039; felhasználóként történő bejelentkezéshez, töltsük fel és másoljuk be azokat az &amp;#039;&amp;#039;authorized_keys&amp;#039;&amp;#039; állományba (ha nincs kulcsunk, csak a virtuális konzolon tudunk &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039;-ként bejelentkezni!). Ezután zárjuk le ezt az állományt:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod 400 $home/.ssh/authorized_keys&lt;br /&gt;
sudo chattr +i $home/.ssh/authorized_keys&lt;br /&gt;
sudo chmod 500 $home/.ssh/&amp;lt;/pre&amp;gt;&lt;br /&gt;
A fenti beállításokkal már csak a &amp;#039;&amp;#039;root&amp;#039;&amp;#039; tud a &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039; felhasználó nevében történő bejelentkezéshez szükséges kulcsokat felvenni (az &amp;#039;&amp;#039;immutable&amp;#039;&amp;#039; bit levétele után).&lt;br /&gt;
&lt;br /&gt;
* Mivel a &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039; alapvetően nem szokványos felhasználó, nem hagyjuk, hogy a shelljére vonatkozó beállításokat megváltoztassa:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod 440 $home/.bashrc;      sudo chattr +i $home/.bashrc&lt;br /&gt;
sudo chmod 440 $home/.bash_logout; sudo chattr +i $home/.bash_logout&lt;br /&gt;
sudo chmod 440 $home/.profile;     sudo chattr +i $home/.profile&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ezzel a felhasználót és a tárhelyet előkészítettük.&lt;br /&gt;
&lt;br /&gt;
==A Docker skeleton telepítése==&lt;br /&gt;
A skeleton telepítéséhez (és minden további, a Docker szolgáltatásokkal kapcsolatos művelet elvégzéséhez) jelentkezzünk be &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039; felhasználóként!&lt;br /&gt;
===Docker gyorsteszt===&lt;br /&gt;
Első lépésként futtassuk le a &amp;#039;&amp;#039;hello-world&amp;#039;&amp;#039; példa image-et:&lt;br /&gt;
&amp;lt;pre&amp;gt;docker run hello-world&amp;lt;/pre&amp;gt;&lt;br /&gt;
Siker esetén a Docker alapfunkciói használhatóak, a teszt containert törölhetjük:&lt;br /&gt;
&amp;lt;pre&amp;gt;docker system prune&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Szükséges mappák és beállítások===&lt;br /&gt;
Hozzuk létre a &amp;#039;&amp;#039;bin&amp;#039;&amp;#039;, &amp;#039;&amp;#039;services&amp;#039;&amp;#039; és &amp;#039;&amp;#039;tmp&amp;#039;&amp;#039; mappákat:&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir $HOME/bin $HOME/tmp&lt;br /&gt;
mkdir $HOME/services; chmod o+x $HOME/services; setfacl -d -m u:$USER:rwX,g::rwX $HOME/services&amp;lt;/pre&amp;gt;&lt;br /&gt;
Az ACL-lel azt szeretnénk biztosítani, hogy a szolgáltatásmappák hierarchiájára a &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039; (user és group) mindig rendelkezzen írásjoggal, továbbá hogy ez a hierarchia a szolgáltatások belső felhasználói számára is bejárható legyen (átgondolni: &amp;#039;&amp;#039;&amp;#039;TODO!&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
Fentieken kívül:&lt;br /&gt;
* A Midnight Commanderben hasznos beállítani (&amp;#039;&amp;#039;mc&amp;#039;&amp;#039;, F9, Beállítások, Alapbeállítások) a saját szövegszerkesztő használatát (F9, Beállítások, Saját szövegszerkesztő, OK). &lt;br /&gt;
* Az &amp;#039;&amp;#039;mcedit&amp;#039;&amp;#039;-ben (F9, Beállítások, Általános) az új sorban automatikus behúzást (ha be lenne kapcsolva) és a látható tabulátorokat(!) kikapcsolni, végül az &amp;#039;&amp;#039;mc&amp;#039;&amp;#039; beállításokat elmenteni (F9, Beállítások, Beállítások mentése).&lt;br /&gt;
&lt;br /&gt;
===A technikai levelezés beállítása===&lt;br /&gt;
Amennyiben a szervergép biztosít technikai levelezést, állítsuk be a &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039; felhasználónak küldött levelek továbbítását a Docker adminisztrátorok tényleges email címeire. Ehhez:&lt;br /&gt;
* Küldjünk egy teszt levelet (&amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039;-ként bejelentkezve):&lt;br /&gt;
&amp;lt;pre&amp;gt;echo &amp;#039;Teszt&amp;#039; | mail -s &amp;#039;Teszt&amp;#039; valid@email.address&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Siker esetén állítsuk be a levéltovábbítást a &amp;#039;&amp;#039;$HOME/.forward&amp;#039;&amp;#039; állományban:&lt;br /&gt;
&amp;lt;pre&amp;gt;mcedit $HOME/.forward&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dockeradmin1@email.cime&lt;br /&gt;
dockeradmin2@email.cime&lt;br /&gt;
[...]&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Ellenőrizzük a levéltovábbítást:&lt;br /&gt;
&amp;lt;pre&amp;gt;echo Teszt | mail -s Teszt dockeradmin&amp;lt;/pre&amp;gt;&lt;br /&gt;
Siker esetén ezután meg fogjuk kapni a Docker környezetek által küldött technikai leveleket is.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Opcionálisan&amp;#039;&amp;#039;, amennyiben a &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039; nem &amp;#039;&amp;#039;sudo-képes&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;TODO!&amp;#039;&amp;#039;&amp;#039;), lezár(at)hatjuk a &amp;#039;&amp;#039;.forward&amp;#039;&amp;#039; állományt, megakadályozva ezzel, hogy a címlistát valamelyik Docker adminisztrátor (vagy egy &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039;-ként futó &amp;#039;&amp;#039;malware&amp;#039;&amp;#039;) törölje vagy módosítsa. Ehhez &amp;#039;&amp;#039;sudo&amp;#039;&amp;#039;-képes felhasználóként (pl. &amp;#039;&amp;#039;sysadminként&amp;#039;&amp;#039;) bejelentkezve adjuk ki az alábbi parancsokat:&lt;br /&gt;
&amp;lt;pre&amp;gt;export home=&amp;#039;/srv/docker&amp;#039;&lt;br /&gt;
sudo chmod 400 $home/.forward&lt;br /&gt;
sudo chattr +i $home/.forward&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ezután a címlista már csak &amp;#039;&amp;#039;root&amp;#039;&amp;#039;-ként módosítható (az &amp;#039;&amp;#039;immutable&amp;#039;&amp;#039; bit levétele után).&lt;br /&gt;
&lt;br /&gt;
===A skeleton telepítése===&lt;br /&gt;
Az egyes szolgáltatásokat egy közös skeletonból fogjuk kialakítani, amely tartalmaz csak egyszer telepítendő, &amp;#039;&amp;#039;server-wide&amp;#039;&amp;#039; elemeket is - ezek némelyikéhez szükséges a &amp;#039;&amp;#039;sudo&amp;#039;&amp;#039; jog!&lt;br /&gt;
&lt;br /&gt;
* [https://example.com Töltsük le] (&amp;#039;&amp;#039;&amp;#039;TODO!&amp;#039;&amp;#039;&amp;#039;) a skeleton legfrissebb (tömörített, &amp;#039;&amp;#039;.tgz&amp;#039;&amp;#039;) változatát, célszerűen a &amp;#039;&amp;#039;$HOME/tmp&amp;#039;&amp;#039; könyvtárba;&lt;br /&gt;
* Alkalmazzuk a skeletonbeli &amp;#039;&amp;#039;.templates&amp;#039;&amp;#039; beállításait:&lt;br /&gt;
** A skeleton &amp;#039;&amp;#039;.templates/bin&amp;#039;&amp;#039; könyvtárának tartalmát másoljuk a &amp;#039;&amp;#039;$HOME/bin&amp;#039;&amp;#039; könyvtárba;&lt;br /&gt;
** Amennyiben a szervergép nem biztosít technikai levelezést, adjunk futtatási jogot a &amp;#039;&amp;#039;$HOME/bin/mail&amp;#039;&amp;#039; (dummy) állományra (biztosítva ezzel, hogy a &amp;#039;&amp;#039;mail&amp;#039;&amp;#039; parancsot függőségként tartalmazó scriptek ennek ellenére lefussanak):&amp;lt;pre&amp;gt;chmod ug+x $HOME/bin/mail&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Amennyiben a szervergépen &amp;#039;&amp;#039;nginx&amp;#039;&amp;#039; webszerver fut: &lt;br /&gt;
*** A skeleton &amp;#039;&amp;#039;.templates/nginx/.nginx&amp;#039;&amp;#039; könyvtárát másoljuk be a &amp;#039;&amp;#039;$HOME/services&amp;#039;&amp;#039; könyvtárba (a &amp;#039;&amp;#039;.gitignore&amp;#039;&amp;#039; törölhető);&lt;br /&gt;
*** A skeleton &amp;#039;&amp;#039;.templates/nginx/conf.d&amp;#039;&amp;#039; könyvtárának tartalmát másoljuk be a &amp;#039;&amp;#039;/etc/nginx/conf.d&amp;#039;&amp;#039; könyvtárba és adjuk a &amp;#039;&amp;#039;root&amp;#039;&amp;#039; tulajdonába 640-es jogosultságokkal (ehhez &amp;#039;&amp;#039;sudo&amp;#039;&amp;#039; szükséges!);&lt;br /&gt;
*** Amennyiben a webszervert más szolgáltatás nem használja, töröljük a &amp;#039;&amp;#039;/etc/nginx/sites-enabled/default&amp;#039;&amp;#039; symlinket (ehhez &amp;#039;&amp;#039;sudo&amp;#039;&amp;#039; szükséges!) - ezzel átvesszük az alapértelmezett weboldal szolgáltatását is;&lt;br /&gt;
** A skeleton &amp;#039;&amp;#039;.templates/sudoers.d&amp;#039;&amp;#039; tartalmát másoljuk be a &amp;#039;&amp;#039;/etc/sudoers.d&amp;#039;&amp;#039; könyvtárba és adjuk a &amp;#039;&amp;#039;root&amp;#039;&amp;#039; tulajdonába 440-es jogosultságokkal (ehhez &amp;#039;&amp;#039;sudo&amp;#039;&amp;#039; szükséges!);&lt;br /&gt;
* Olvastassuk újra a webszerver konfigurációját (a &amp;#039;&amp;#039;sudoers.d&amp;#039;&amp;#039; beállítás miatt ehhez nem kell &amp;#039;&amp;#039;sudo&amp;#039;&amp;#039;):&lt;br /&gt;
** &amp;#039;&amp;#039;nginx&amp;#039;&amp;#039; esetén &amp;lt;pre&amp;gt;systemctl reolad nginx&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;#039;&amp;#039;Apache 2&amp;#039;&amp;#039; esetén &amp;lt;pre&amp;gt;systemctl reload apache2&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Állítsuk be az időzített karbantartások lefuttatását:&amp;lt;pre&amp;gt;crontab -e&amp;lt;/pre&amp;gt;Másoljuk a fájl végére a skeletonbeli &amp;#039;&amp;#039;.templates/crontab&amp;#039;&amp;#039; tartalmát és mentsük el az új &amp;#039;&amp;#039;contab&amp;#039;&amp;#039; állományt.&lt;br /&gt;
Ezzel a skeleton &amp;#039;&amp;#039;server-wide&amp;#039;&amp;#039; elemeit telepítettük, készen állunk az első szolgáltatás létrehozatalára.&lt;br /&gt;
&lt;br /&gt;
==Karbantartások==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TODO!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
==Irodalom==&lt;br /&gt;
* [https://linuxconfig.org/how-to-install-docker-on-ubuntu-20-04-lts-focal-fossa How to Install Docker On Ubuntu 20.04 LTS Focal Fossa] (Linuxconfig.org)&lt;br /&gt;
* [https://docs.docker.com/engine/install/ubuntu/ Install Docker Engine on Ubuntu] (Docker Docs)&lt;br /&gt;
* [https://stackoverflow.com/questions/45023363/what-is-docker-io-in-relation-to-docker-ce-and-docker-ee What is docker.io in relation to docker-ce and docker-ee?] (StackOverflow)&lt;br /&gt;
* [https://www.collabora.com/news-and-blog/blog/2018/07/04/docker-io-debian-package-back-to-life/ The docker.io Debian package is back to life] (Collabora)&lt;br /&gt;
* [https://docs.docker.com/engine/install/linux-postinstall/ Post-installation steps for Linux] (Docker Docs)&lt;br /&gt;
* [https://github.com/chaifeng/ufw-docker To Fix The Docker and UFW Security Flaw Without Disabling Iptables] (GitHub)&lt;/div&gt;</summary>
		<author><name>KZoli</name></author>
	</entry>
</feed>