Docker kép lértehozás

Ebben a cikkben megmutatom, hogyan hozhatsz létre egyszerűen Docker konténer képeket.

build-docker-image

Az előző cikkben megmutattuk a Docker telepítését Linuxon, Windowson és macOS-es. Most ismerkedjünk meg a Docker képek készítésének alapjaival. A DockerHubon rengeteg előre elkészített kép található, amit felhasználhatsz, de itt közzé is teheted a sajátodat.

Előre elkészített képeket fogunk használni egy alap Linuxos alrendszerhez, így elég sok munkát megspórolunk majd és nem kell az alapoktól felépíteni. Alapként használhatsz Alpine (ez a Docker hivatalos disztrója), Ubuntu, BusyBox vagy bármilyen más Linuxot. Én Ubuntut fogok használni.

Mielőtt elkezdenénk a saját képeink létrehozását, "konténerezzük" őket! Itt most arra gondolok, hogy csináljunk könyvtárakat a Docker képeinknek, így egymástól elkülönítve kezelhetjük őket.

mkdir dockerprojects
cd dockerprojects

Most hozz létre egy Dockerfile nevű fájlt a dockerprojects könyvtárban a kedvenc szövegszerkesztőddel. Én a nanot szeretem, de sokan vi-ra esküsznek.

nano Dockerfile

Csak ezt a sort írd bele:

FROM ubuntu

Mentsd el és lépj ki: Ctrl+0, I (vagy Y nyelvtől függően), Ctrl+X (de ez látszik is alul)

Most már létre tudod hozni a képet és nevet is adhatsz neki. Futtasd ezt a parancsot az előbbi könyvtárban:

sudo docker build -t dockp .

Figyelj a parancs végén szereplő pontra, az jelzi az aktuális könyvtárat. Ha minden oké, akkor valami ilyesmit kell látnod:

Sending build context to Docker daemon  2.048kB
Step 1/1 : FROM ubuntu
---> 2a4cca5ac898
Successfully built 2a4cca5ac898
Successfully tagged dockp:latest

Futtasd!

sudo docker run -it ubuntu

Most a Dockerben futó Ubuntu root promptját látod:

root@f16d897a78a6:/#

Ezt azt jelenti, hogy tulajdonképpen a egy minimális Ubuntut futtatsz egy Linuxon, Windowson vagy macOS-en belül. Így használhatod az Ubuntu parancsait és eszközeit.

ubuntu-ls]

Az exit paranccsal tudsz kilépni.

Lássuk, milyen Docker képek vannak a gépünkön:

sudo docker images

Kapunk egy szép listát:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
dockp               latest              2a4cca5ac898        1 hour ago          111MB
ubuntu              latest              2a4cca5ac898        1 hour ago          111MB
hello-world         latest              f2a91732366c        8 weeks ago         1.85kB

Három képet látsz most a listán: dockp, ubuntu, és hello-world, ez pár hete csináltam, amikor a sorozat korábbi cikkein dolgoztam.

Most hozzunk létre egy LAMP szerver képet egy Dockerfile segítségével!

A Dockerfile alapvetően instrukciókat tartalmaz a szükséges csomagok telepítéséhez, beállításokhoz és a másolandó fájlokhoz. Ebben az esetben ez az Apache lesz.

A továbbiakhoz szükséged lesz egy DockerHub fiókra, ahova a képek létrehozása előtt be kell jelentkezned. A ha már van fiókod a parancssorból így jelenthetsz be:

sudo docker login

Add meg a DockerHub felhasználóneved és jelszavad. Ha minden igaz, akkor ezt az üzenetet fogod majd látni:

Login Succeeded

Most akkor csináljunk egy könyvtárat az Apache-nak és lépjünk is bele:

mkdir apache
cd apache

Hozzuk létre a Dockerfilet az Apache könyvtárában:

nano Dockerfile

És írjuk be a következő sorokat:

FROM ubuntu
MAINTAINER Falu.Me version: 0.1
RUN apt-get update && apt-get install -y apache2 && apt-get clean && rm -rf /var/lib/apt/lists/*
ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2

EXPOSE 80

CMD ["/usr/sbin/apache2", "-D", "FOREGROUND"]

Mentsd el, lépj ki, majd készítsd el a képet:

sudo docker build -t apache .

Egy darabig eltart mire elkészül, végül valami ilyesmit kell látnod:

Successfully built 7770d5d49ffa
Successfully tagged apache:latest

Futtassuk a szerverünket:

sudo docker run -d apache
fa263ba0576a74c9a89600b162aefcbaabf4ae5fe201a3fdf5ce876036a32418

Hurrá! A konténer képed már fut is. Ellenőrizzük a futó konténereket:

sudo docker ps
CONTAINER ID  IMAGE        COMMAND                 CREATED            
fa263ba0576 apache "/usr/sbin/apache2ctl"  10 seconds ago

A konténert a következő parancs segítségével tudod kilőni:

sudo docker kill fa263ba0576

Ezzel a módszerrel annyi konténert hozhatsz létre vagy futtathatsz, amennyit csak szeretnél.

Legközelebb feltöltjük a konténer képeket a DockerHubra.

forrás: linux.com

Címkék: