Docker - příklady použití - prolinkování kontejnerů, vytvoření vlastního image

Docker - příklady použití - prolinkování kontejnerů, vytvoření vlastního image

Navážeme na předešlý článek o Dockeru a ukážeme si jak prolinkovat kontejnery mezi sebou a jak vytvořil vlastní image.

 

WORDPRESS

----------------------------------------------------------

Nyní provedeme instalaci Wordpressu a MariaDB do docker kontejnerů, kontejnery spolu prolinkujeme (aby si spolu mohly povídat) a předáme jim mezi sebou přístupy k databázi.


1.) Instalace MariaDB


- nastaví root heslo Tvbd6vbndsD
- vytvoří databázi wordpress
- nastaví název kontejneru wp_db
docker run -e MYSQL_ROOT_PASSWORD=Tvbd6vbndsD -e MYSQL_DATABASE=wordpress --name wp_db -d mariadb:latest
- na konci můžeme specifikovat jiný port např 3810 takto: --port 3810


2.) Instalace Wordpress


- nastaví název kontejneru wordpress
- prolinkuje kontejner s wp_db
- wordpress bude dostupný na portu 8080 (localhost:8080)
- pomocí environmentálních proměnných "-e" dojde k předání přístupů do databáze, takže se při instalaci wp nemusejí zadávat (zkuste si příkaz dát bez nich a uvidíte)
docker run -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=Tvbd6vbndsD --name wordpress --link wp_db:mysql -p 8080:80 -d wordpress

 

 

IMAGES

--------------------------------------------------------


Vytvoření vlastního image


1.) Vytvoříme si kontejner např. s ubuntu
docker run -it ubuntu
2.) Uděláme tam nějakou svojí změnu, doinstalujeme tam např. screen
apt install screen
3.) Takto upravený kontejner 31b7303b3a99 si budeme chtít uložit pro budoucí použití do image, takže uděláme commit a tím ho uložíme
docker commit -m "Ubuntu with screen" -a "Hanz" 31b7303b3a99 hanz/ubuntu-screen
4.) Podíváme se, zda je image skutečně uložený
docker images
5.) Pokud nyní kontejner 31b7303b3a99 smažeme, tak ale o naše změny nepřijdeme, protože je máme uložené v image
docker rm 31b7303b3a99
PS: Takový image můžeme dát na Docker Hub a pak ho dále sdílet



Vytvoření kontejneru z našeho image

Z námi uloženého image můžeme vytvořit kontejner a rovnou skočit do bashe
docker run -it hanz/ubuntu-screen

 


Smazání image

1.) Vypíšeme si všechny image
docker images

REPOSITORY                  TAG       IMAGE ID       CREATED         SIZE
hanz/ubuntu-screen          latest    6c02030eeda1   3 minutes ago   122MB
mysql                       latest    4073e6a6f542   7 days ago      530MB
symfony-docker-main-php     latest    1eb6e749063e   12 days ago     139MB
wordpress                   latest    8fec96b2307f   13 days ago     615MB
ubuntu                      latest    74f2314a03de   2 weeks ago     77.8MB
symfony-docker-main-caddy   latest    65df35710ba7   4 weeks ago     48.6MB
hello-world                 latest    feb5d9fea6a5   17 months ago   13.3kB


2.) A chceme smazat image symfony-docker-main-php
docker image rm symfony-docker-main-php

 

 

Další příkazy

--------------------------------------------------------

 

Zobrazit konfiguraci pro kontejner dle ID
---------------------------

docker inspect 3b18fedb6c12

 

 

Zobrazit poslední logy pro kontejner s ID 0b4fd60b3508
-----------------------
docker logs --tail all 0b4fd60b3508



Zákázat autostart pro kontejner wordpress
-----------------------
docker update --restart=no wordpress

 

Jak změnit port u existujícího kontejneru
---------------------------

Změníme port pro kontejner wordpress např. na 8081

docker commit wordpress wordpress2
docker run -p 8081:80 -td wordpress2



Info
-----------------------
docker info

 

Prostředky
---------------------------
docker stats

 

Stav služby (démona)

-----------------------
systemctl status docker




Omezeni prostředků pro kontejner
-----------------------
--memory="300m" # 300MB RAM
--memory-swap="300m" #300MB swap
-it --cpus="1.5" #1,5 CPU


Komentáře

Vaše reakce na Docker - příklady použití - prolinkování kontejnerů, vytvoření vlastního image
Jirka
#1941

02.09.2024 [1]
Ahoj,

používám docker v ubuntu. Chtěl jsem zkusit docker desktop, ale nevyhovuje mi to, takže uninstall. Po restartu však docker nefunguje s chybou:

docker compose up
Cannot connect to the Docker daemon at unix:///home/jirka/.docker/desktop/docker.sock. Is the docker daemon running?

Co s tím? Díky


Hanz
#1942

02.09.2024 [2]
Poslední komentář Reakce na komentář #1941
Ahoj Jirko,

výchozí context pro docker lze upravit takto:


hanz@linux:~$ docker context ls
NAME DESCRIPTION DOCKER ENDPOINT ERROR
default Current DOCKER_HOST based configuration unix:///var/run/docker.sock
desktop-linux * Docker Desktop unix:///home/hanz/.docker/desktop/docker.sock

hanz@linux:~$ docker context use default
default
Current context is now "default"

hanz@linux:~$ sudo systemctl restart docker

hanz@linux:~$ docker context ls
NAME DESCRIPTION DOCKER ENDPOINT ERROR
default * Current DOCKER_HOST based configuration unix:///var/run/docker.sock
desktop-linux Docker Desktop

Související obsah

linux

bash

docker

kontejner

virtualizace

Reference

Podívejte se na naše reference

Prohlédnout

Aplikace

Podívejte se na naše aplikace

Prohlédnout

Co umíme?

Podívejte se co umíme

Prohlédnout

Co umíme?

Vytváříme sofistikované aplikace pro náročné

Od webových aplikací přes android až po převodové můstky či složité informační systémy.

Podívejte se k nám

Máte ještě čas? Podívejte se na další rubriky

Tento web používá soubory cookie. Dalším procházením tohoto webu vyjadřujete souhlas s jejich používáním.. Více informací zde.