rilpoint_mw113

Linux:Docker

(Változatok közti eltérés)
 
(2 közbeeső változat nincs mutatva)
1. sor: 1. sor:
-
Telepítse fel a Dockert a számítógépére!<megoldas><code lang="bash">apt-get install docker.io</code></megoldas>
+
== Docker ==
-
Ellenőrizze a Docker verziószámát!<megoldas><code lang="bash">docker -v</code></megoldas>
+
 
-
Indítsa el a hello-world konténert!<megoldas><code lang="bash">docker run hello-world
+
* Telepítse fel a Dockert a számítógépére!<megoldas><code lang="bash">apt-get install docker.io</code></megoldas>
 +
* Ellenőrizze a Docker verziószámát!<megoldas><code lang="bash">docker -v</code></megoldas>
 +
* Indítsa el a hello-world konténert!<megoldas><code lang="bash">docker run hello-world
docker run --name hw hello-world</code></megoldas>
docker run --name hw hello-world</code></megoldas>
-
Töltse le a busybox konténert, de ne indítsa el!<megoldas><code lang="bash">docker pull busybox</code></megoldas>
+
* Töltse le a busybox konténert, de ne indítsa el!<megoldas><code lang="bash">docker pull busybox</code></megoldas>
-
Indítsa el az előző feladatban letöltött busybox-ot!<megoldas><code lang="bash">docker run -it busybox</code></megoldas>
+
* Indítsa el az előző feladatban letöltött busybox-ot!<megoldas><code lang="bash">docker run -it busybox</code></megoldas>
-
Listázza ki a futó konténereket!<megoldas><code lang="bash">docker ps</code></megoldas>
+
* Listázza ki a futó konténereket!<megoldas><code lang="bash">docker ps</code></megoldas>
-
Listázza ki az összes konténert!<megoldas><code lang="bash">docker ps -a</code></megoldas>
+
* Listázza ki az összes konténert!<megoldas><code lang="bash">docker ps -a</code></megoldas>
-
Indítsa el újra a hello-world konténert úgy, hogy a konténer azonosítóját használja paraméterként!<megoldas><code lang="bash">docker start -a 12sad...</code></megoldas>
+
* Indítsa el újra a hello-world konténert úgy, hogy a konténer azonosítóját használja paraméterként!<megoldas><code lang="bash">docker start -a 12sad...</code></megoldas>
-
Indítsa el a busybox konténert úgy, hogy azon belül az ls parancsot hajtsa végre!<megoldas><code lang="bash">docker run busybox ls</code></megoldas>
+
* Indítsa el a busybox konténert úgy, hogy azon belül az ls parancsot hajtsa végre!<megoldas><code lang="bash">docker run busybox ls</code></megoldas>
-
Törölje a hello-world konténert (ha több van belőle, az összeset)!<megoldas><code lang="bash">docker rm konténer-id</code></megoldas>
+
* Törölje a hello-world konténert (ha több van belőle, az összeset)!<megoldas><code lang="bash">docker rm konténer-id</code></megoldas>
-
Álltítsa le a vibrant_solomon nevű konténert!<megoldas><code lang="bash">
+
* Álltítsa le a vibrant_solomon nevű konténert!<megoldas><code lang="bash">
docker stop vibrant_solomon
docker stop vibrant_solomon
docker kill vibrant_solomon</code></megoldas>
docker kill vibrant_solomon</code></megoldas>
-
Törölje a 6d7e1cec74fa azonosító konténert!<megoldas><code lang="bash">docker rm 6d7e1cec74fa</code></megoldas>
+
* Törölje a 6d7e1cec74fa azonosító konténert!<megoldas><code lang="bash">docker rm 6d7e1cec74fa</code></megoldas>
-
Törölje az összes leállított konténert!<megoldas><code lang="bash">docker container prune
+
* Törölje az összes leállított konténert!<megoldas><code lang="bash">docker container prune
docker rm $(docker ps -a -q -f status=exited)</code></megoldas>
docker rm $(docker ps -a -q -f status=exited)</code></megoldas>
-
Törölje az összes konténer image-et!<megoldas><code lang="bash">for I in $(docker image ls -q) ; do docker image rm $I ; done</code></megoldas>
+
* Törölje az összes konténer image-et!<megoldas><code lang="bash">for I in $(docker image ls -q) ; do docker image rm $I ; done</code></megoldas>
-
Indítson egy Ubuntu 16.04-es rendszerű konténert, és lépjen be abba!<megoldas><code lang="bash">docker run -it ubuntu:16.04 bash</code></megoldas>
+
* Indítson egy Ubuntu 16.04-es rendszerű konténert, és lépjen be abba!<megoldas><code lang="bash">docker run -it ubuntu:16.04 bash</code></megoldas>
-
Érje el, hogy a fenti kinténer mindig induljon újra, amikor abból kilép!<megoldas><code lang="bash">docker run --restart=always -it ubuntu bash</code></megoldas>
+
* Érje el, hogy a fenti kinténer mindig induljon újra, amikor abból kilép!<megoldas><code lang="bash">docker run --restart=always -it ubuntu bash</code></megoldas>
-
Egy másik terminálból lépjen be a a még futó Ubuntu konténerbe!<megoldas><code lang="bash">docker attach [Ubuntu-konténer-id-je]</code></megoldas>
+
* Egy másik terminálból lépjen be a a még futó Ubuntu konténerbe!<megoldas><code lang="bash">docker attach [Ubuntu-konténer-id-je]</code></megoldas>
-
Indítson egy konténert egy Alpine Linux-szal, lépjen be és jelenítse meg a /bin könyvtár tartalmát!<megoldas><code lang="bash">docker run alpine ls -l /bin</code></megoldas>
+
* Indítson egy konténert egy Alpine Linux-szal, lépjen be és jelenítse meg a /bin könyvtár tartalmát!<megoldas><code lang="bash">docker run alpine ls -l /bin</code></megoldas>
-
Készítsen egy konténert, amelyben a Ninvaders program indul el!<megoldas><code lang="bash">
+
* Készítsen egy konténert, amelyben a Ninvaders program indul el!<megoldas><code lang="bash">
FROM ubuntu:latest
FROM ubuntu:latest
FROM ubuntu:16.04
FROM ubuntu:16.04
29. sor: 31. sor:
CMD ["./ninvaders"]
CMD ["./ninvaders"]
</code></megoldas>
</code></megoldas>
-
 
+
* Építse fel ezt a konténert!<megoldas><code lang="bash">docker build -t ninvaders:1 .</code></megoldas>
-
 
+
* Indítsa el a konténert!<megoldas><code lang="bash">docker run -it ninvaders:1 </code></megoldas>
-
 
+
* Törölje a konténert és az image fájljait is!<megoldas><code lang="bash">
-
 
+
docker rm konténer-id
-
 
+
docker image rm image-id
-
= Docker =
+
</code></megoldas>
-
 
+
-
Telepítése:
+
-
<code lang="bash">
+
-
apt-get install docker.io
+
-
</code>
+
-
 
+
-
<code lang="bash">
+
-
docker version  # docker -v
+
-
</code>
+
-
 
+
-
== Hello world! ==
+
-
<code lang="bash">
+
-
docker run hello-world # == docker create hello-world ; docker start -a 12sad...
+
-
docker run --name hw hello-world
+
-
</code>
+
-
 
+
-
Részletesebben:
+
-
<code lang="bash">
+
-
docker create hello-world
+
-
docker start -a 12sad...
+
-
</code>
+
-
 
+
-
Konténerek listázása
+
-
<code lang="bash">
+
-
docker ps # Futó konténerek listázása
+
-
docker ps -a # Összes konténer listázása
+
-
</code>
+
-
 
+
-
<code lang="bash">
+
-
docker start vibrant_solomon
+
-
docker stop vibrant_solomon
+
-
docker kill vibrant_solomon
+
-
</code>
+
-
 
+
-
Konténer törlése
+
-
<code lang="bash">
+
-
docker rm 6d7e1cec74fa # Egy konténer törlése [csak addig kell írni az azonosítót, amíg egyértelmű nem lesz.]
+
-
docker container prune  # Összes leállított konténer törlése === docker rm $(docker ps -a -q -f status=exited)
+
-
</code>
+
-
 
+
-
Image-ek kezelése
+
-
<code lang="bash">
+
-
docker image ls # Image-ek listázása (=== docker images)
+
-
docker image rm ubuntu:latest # Image törlése (=== docker image rm romantic_franklin)
+
-
docker rmi hello-world -f # Az összes Hello-world törlése
+
-
</code>
+
-
 
+
-
<code lang="bash">
+
-
# Az összes image törlése
+
-
for I in $(docker image ls -q) ; do docker image rm $I ; done
+
-
</code>
+
-
 
+
-
 
+
-
Konténer letöltése
+
-
<code lang="bash">
+
-
docker pull busybox
+
-
</code>
+
-
 
+
-
== Busybox ==
+
-
 
+
-
Konténer indítása
+
-
<code lang="bash">
+
-
docker run busybox
+
-
docker run busybox ls
+
-
</code>
+
-
 
+
-
== Ubuntu ==
+
-
 
+
-
Egy alap "üres" Linux konténer létrehozása, indítása és belépés:
+
-
<code lang="bash">
+
-
docker run -it ubuntu bash
+
-
docker run -it ubuntu:16.04 bash
+
-
</code>
+
-
 
+
-
== Konténer menedzsment ==
+
-
 
+
-
Folyamatos üzemre tervezve
+
-
<code lang="bash">
+
-
docker run --restart=always -it ubuntu bash
+
-
docker attach vibrant_solomon
+
-
docker attach d65506baadb2
+
-
</code>
+
-
 
+
-
(mc install, demonstrálható a screen-szerű működés:)
+
-
<code lang="bash">
+
-
CTRL-p + CTRL-q
+
-
 
+
-
docker exec -it vibrant_solomon /bin/bash
+
-
</code>
+
-
 
+
-
 
+
-
Alpine Linux
+
-
<code lang="bash">
+
-
docker run alpine ls -l /bin
+
-
</code>
+
-
 
+
-
== Dockerfile ==
+
-
 
+
-
* FROM: a konténer alap (base) image-e (pl.: linux 16.04, 18:04, latest).
+
-
* MAINTAINER (nem kötelező): a dockerfile készítő neve és e-mail címe.
+
-
* RUN:  a konténer image létrehozása során végrehajtandó parancsok.
+
-
* ADD: fájl másolása az image-be.
+
-
* ENV: környezeti változó definiálása.
+
-
* CMD: a konténer indításakor automatikusan lefutó parancs.
+
-
* ENTRYPOINT: a konténer indításakor automatikusan lefutó parancs.
+
-
* WORKDIR: az alapértelmezett könyvtár a konténer indulásakor.
+
-
 
+
-
A hello.txt tartalma:
+
-
<code lang="bash">
+
-
hello!
+
-
</code>
+
-
 
+
-
Egy Dockerfile tartalma:
+
-
 
+
-
<code lang="bash">
+
-
# Alap image
+
-
FROM ubuntu:latest
+
-
# FROM ubuntu:16.04
+
-
 
+
-
# Készítette
+
-
MAINTAINER Koczka Ferenc <koczka.ferenc@uni-eszterhazy.hu>
+
-
 
+
-
# update és install
+
-
RUN apt-get update && apt-get -y install ninvaders
+
-
 
+
-
# Bemásoljuk a hello.txt fájlt a root home könyvtárába
+
-
ADD hello.txt /root/hellobello.txt
+
-
 
+
-
# Környezeti változó beállítása
+
-
ENV VERSION 1.0
+
-
 
+
-
# Munkakönyvtár beállítása
+
-
WORKDIR /usr/games
+
-
 
+
-
# Játék indítása
+
-
CMD ["./ninvaders"]
+
-
 
+
-
</code>
+
-
 
+
-
Konténer elkészítése
+
-
<code lang="bash">
+
-
docker build -t ninvaders:1 .
+
-
</code>
+
-
 
+
-
Konténer indítása
+
-
<code lang="bash">
+
-
docker run -it ninvaders:1
+
-
</code>
+
-
 
+
-
<code lang="bash">
+
-
docker run -it ninvaders:1 bash
+
-
</code>
+
-
 
+
-
== Készítsünk webszervert! ==
+
-
 
+
-
A megjelenítendő weblap legyen az src/index.html fájlban:
+
-
 
+
-
<code lang="bash">
+
-
<h1>Hello</h1>
+
-
<p>Hello from a Docker container!</p>
+
-
</code>
+
-
 
+
-
A Dockerfile:
+
-
 
+
-
<code lang="bash">
+
-
# Dockerfile
+
-
# A konténer elkészítése: docker build -t apache:1 .
+
-
# Indítása: docker run --rm -it -p 80:80 apache:1
+
-
# ------------------------------------------------------
+
-
 
+
-
FROM ubuntu:latest
+
-
MAINTAINER Koczka Ferenc <koczka.ferenc@uni-eszterhazy.hu>
+
-
# Sajnos be kell állítanunk az időzónát.
+
-
ENV TZ=Europe/Budapest
+
-
RUN \
+
-
  ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone ;\
+
-
  apt-get update ;\
+
-
  apt-get -y install apache2 ;\
+
-
  apt-get clean
+
-
 
+
-
ADD src/index.html /var/www/html/index.html
+
-
 
+
-
EXPOSE 80
+
-
CMD ["apachectl", "-D", "FOREGROUND"]
+
-
</code>
+
-
 
+
-
<code lang="bash">
+
-
docker build -t apache:1 .
+
-
</code>
+
-
 
+
-
<code lang="bash">
+
-
docker run --rm -it -p 80:80 apache:1
+
-
</code>
+
-
 
+
-
Ha a konténeren kívül akarjuk elhelyezni a webroot-ot:
+
-
<code lang="bash">
+
-
mkdir /tmp/feri
+
-
echo '<h1>Hello from outside!</h1>' >/tmp/feri/index.html
+
-
docker run --rm -it -p 80:80 -v /tmp/feri:/var/www/html/ apache:1
+
-
</code>
+
-
 
+
-
== Feltöltés a Docker Hubba ==
+
-
 
+
-
Bejelentkezünk a Docker Hubba:
+
-
<code lang="bash">
+
-
docker login
+
-
</code>
+
-
 
+
-
A feltöltendő image ID-je: 4f16d9008b01
+
-
<code lang="bash">
+
-
docker image ls
+
-
REPOSITORY              TAG                IMAGE ID            CREATED            SIZE
+
-
koczkaferenc/ninvaders  2                  4f16d9008b01        3 minutes ago      106MB
+
-
</code>
+
-
 
+
-
Összerendeljük az ID-t a konténer nevével, és feltöltjük:
+
-
<code lang="bash">
+
-
docker tag 4f16d9008b01 koczkaferenc/ninvaders:2
+
-
docker push koczkaferenc/ninvaders:2
+
-
</code>
+
-
 
+
-
Letöltés a Docker Hubból:
+
-
<code lang="bash">
+
-
Letöltés a Docker Hubból:
+
-
<code lang="bash">
+
-
docker run -it koczkaferenc/ninvaders:2
+
-
</code>
+
-
 
+
-
== Kész webszerver alkalmazása ==
+
-
 
+
-
<code lang="bash">
+
-
mkdir web
+
-
cd web
+
-
echo "<h1>Welcome to the rabbithole.</h1>"
+
-
docker run -dit --name my-apache-app -p 80:80 -v "$PWD":/usr/local/apache2/htdocs/ httpd:2.4
+
-
</code>
+
-
 
+
-
Vagy olvashatjuk a dokumentációt:
+
-
<code lang="bash">
+
-
docker run -d -p 80:80 docker/getting-started
+
-
Böngészőben: http://127.0.0.1
+
-
</code>
+
-
 
+
-
== MySQL szerver ==
+
-
 
+
-
<code lang="bash">
+
-
#!/bin/bash
+
-
INSTANCE_NAME="mysql-5.6"
+
-
MYSQL_ROOT_PW="TitkosJelszo"
+
-
MYSQL_DATA_DIR=/Users/koczka.ferenc/Docker/mysql-5.6/data
+
-
MYSQL_CONF_DIR=/Users/koczka.ferenc/Docker/mysql-5.6/conf
+
-
set -x
+
-
docker stop mysql-5.6
+
-
docker rm mysql-5.6
+
-
 
+
-
[ -d conf.d ] && rm -r conf.d
+
-
[ -d data ] && rm -r data
+
-
 
+
-
docker run -d \
+
-
--name ${INSTANCE_NAME} \
+
-
-e MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PW} \
+
-
-p 3306:3306 \
+
-
-v ${MYSQL_CONF_DIR}:/etc/mysql/ \
+
-
-v ${MYSQL_DATA_DIR}:/var/lib/mysql \
+
-
mysql:5.6
+
-
 
+
-
#docker exec -it $INSTANCE_NAME /bin/bash -c "
+
-
#apt-get update ;
+
-
#apt-get -y install mc ;
+
-
#"
+
-
exit
+
-
docker exec -it mysql-5.6 /bin/bash
+
-
docker stop mysql-5.6
+
-
 
+
-
</code>
+
-
 
+
-
=Docker-compose=
+

A lap jelenlegi, 2022. november 5., 10:04-kori változata

Docker

  • Telepítse fel a Dockert a számítógépére!
  • Ellenőrizze a Docker verziószámát!
  • Indítsa el a hello-world konténert!
  • Töltse le a busybox konténert, de ne indítsa el!
  • Indítsa el az előző feladatban letöltött busybox-ot!
  • Listázza ki a futó konténereket!
  • Listázza ki az összes konténert!
  • Indítsa el újra a hello-world konténert úgy, hogy a konténer azonosítóját használja paraméterként!
  • Indítsa el a busybox konténert úgy, hogy azon belül az ls parancsot hajtsa végre!
  • Törölje a hello-world konténert (ha több van belőle, az összeset)!
  • Álltítsa le a vibrant_solomon nevű konténert!
  • Törölje a 6d7e1cec74fa azonosító konténert!
  • Törölje az összes leállított konténert!
  • Törölje az összes konténer image-et!
  • Indítson egy Ubuntu 16.04-es rendszerű konténert, és lépjen be abba!
  • Érje el, hogy a fenti kinténer mindig induljon újra, amikor abból kilép!
  • Egy másik terminálból lépjen be a a még futó Ubuntu konténerbe!
  • Indítson egy konténert egy Alpine Linux-szal, lépjen be és jelenítse meg a /bin könyvtár tartalmát!
  • Készítsen egy konténert, amelyben a Ninvaders program indul el!
  • Építse fel ezt a konténert!
  • Indítsa el a konténert!
  • Törölje a konténert és az image fájljait is!
Skin by RIL Partner