Dříve jsme viděli instalace hypervizorů jako Xen a cloudového middlewaru jako openstack. Nejžhavějším trendem ve vývoji aplikací se v poslední době stala nová technologie zvaná docker container. V tomto článku uvidíme, co přesně je docker, jeho rozdíly oproti virtuálním strojům, instalaci dockeru a jeho použití.
Co je Docker?
Docker je kontejner, který zabalí kus softwaru do kompletního souborového systému, který obsahuje vše, co potřebuje ke spuštění:kód, běh, systémové nástroje, systémové knihovny – vše, co můžete nainstalovat na server. Kontejnery se virtualizují na úrovni operačního systému, díky čemuž jsou z hlediska využití systémových prostředků efektivnější než hypervizory. Existuje mnoho technologií linuxových kontejnerů, jako je LXC, Docker atd.,
Jaký je rozdíl mezi Dockerem a virtuálním počítačem?
S odlišným architektonickým přístupem jsou kontejnery mnohem přenosnější a efektivnější, i když mají podobnou izolaci zdrojů. Níže uvedený obrázek ukazuje architektonický rozdíl mezi kontejnerem a virtuálními stroji.
Jak nainstalovat kontejner Docker na CentOS 7?
Nejnovější oficiální verze Dockeru je v1.10. Níže jsou uvedeny pokyny pro instalaci Docker Container na server CentOS 7. Přihlaste se k serveru CentOS 7 jako root a postupujte podle níže uvedených kroků.
Krok 1: V rámci osvědčeného postupu nechte systém aktualizovat pomocí yum, jak je uvedeno níže:
# yum -y update
Krok 2: Ve výchozím nastavení je Docker součástí úložiště CentOS-Extra. Pokud byste chtěli použít aktuálnější verzi dockeru, spusťte níže uvedený příkaz pro přidání do úložiště.
# tee /etc/yum.repos.d/docker.repo <<-'EOF'
> [dockerrepo]
> name=Docker Repository
> baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
> enabled=1
> gpgcheck=1
> gpgkey=https://yum.dockerproject.org/gpg
> EOF
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
Krok 3: Nainstalujte balíček docker a docker-registry. Registr Docker je bezstavová, vysoce škálovatelná aplikace na straně serveru, která ukládá a umožňuje distribuovat obrázky Docker.
# yum -y install docker docker-registry
Krok 3: Po úspěšné instalaci dockeru spusťte službu dockeru.
# systemctl start docker.service
Krok 4: Ujistěte se, že se služba dockeru spouští při spouštění pomocí níže uvedeného příkazu:
# systemctl enable docker.service
Krok 5: Ověřte službu docker
# systemctl status docker.service
docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2016-03-22 16:29:00 IST; 20h ago Docs: http://docs.docker.com Main PID: 30108 (docker) CGroup: /system.slice/docker.service ââ30108 /usr/bin/docker daemon --selinux-enabled
Mar 22 17:10:12 vm1 docker[30108]: time="2016-03-22T17:10:12.541577770+05:3...1" Mar 22 17:11:05 vm1 docker[30108]: time="2016-03-22T17:11:05.429417681+05:3...0" Mar 22 17:11:05 vm1 docker[30108]: time="2016-03-22T17:11:05.429730128+05:3...s" Mar 22 17:11:05 vm1 docker[30108]: time="2016-03-22T17:11:05.429781346+05:3...04 Mar 22 17:11:13 vm1 docker[30108]: time="2016-03-22T17:11:13.020019713+05:3...0" Mar 22 17:11:23 vm1 docker[30108]: time="2016-03-22T17:11:23.021293894+05:3...e" Mar 22 17:11:28 vm1 docker[30108]: time="2016-03-22T17:11:28.600657892+05:3...n" Mar 22 17:11:35 vm1 docker[30108]: time="2016-03-22T17:11:35.938950613+05:3...0" Mar 22 17:11:45 vm1 docker[30108]: time="2016-03-22T17:11:45.939810804+05:3...e" Mar 22 17:11:57 vm1 docker[30108]: time="2016-03-22T17:11:57.720737864+05:3...n" Hint: Some lines were ellipsized, use -l to show in full.
Jak používat Docker?
Krok 1: Stáhněte si kontejner Docker. Spuštěním níže uvedeného příkazu získáte nejnovější stabilní oficiální obraz CentOS:
# docker pull centos
Výše uvedený příkaz stáhne nejnovější stabilní verzi centos. Chcete-li stáhnout jakoukoli jinou verzi obrazu CentOS, například CentOS 6:
# docker pull centos:centos6
Krok 2: Chcete-li ověřit, zda byly obrázky staženy místně:
# docker images centos REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE docker.io/centos latest bb3d629a7cbc 2 weeks ago 196.6 MB
Krok 3: Seznam všech dostupných stažených obrázků:
# docker images
Jak spustit Docker Container
Krok 1: Spusťte základní kontejner Centos s bash shellem. Zde -i volba připojí stdin a stdout , -t přiděluje tty .
# docker run -i -t centos /bin/bash
A je to! Nyní jste přistáli na bash shellu uvnitř dokovacího kontejneru centos.
Příkazy pro práci s kontejnery Docker
1. Odpojení nebo odpojení od kontejneru bez vypnutí kontejneru:
Ctrl-p + Ctrl-q
2. Komunita má již k dispozici mnoho kontejnerů. Seznam kontejnerů z komunity:
# docker search centos INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.io/centos The official build of CentOS. 2042 [OK] docker.io docker.io/jdeathe/centos-ssh CentOS-6 6.7 x86_64 / CentOS-7 7.2.1511 x8... 18 [OK] docker.io docker.io/jdeathe/centos-ssh-apache-php CentOS-6 6.7 x86_64 / Apache / PHP / PHP M... 14 [OK] ... ...
# docker search ubuntu INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.io/ubuntu Ubuntu is a Debian-based Linux operating s... 3464 [OK] docker.io docker.io/ubuntu-upstart Upstart is an event-based replacement for ... 60 [OK] docker.io docker.io/torusware/speedus-ubuntu Always updated official Ubuntu docker imag... 25 [OK] docker.io docker.io/rastasheep/ubuntu-sshd Dockerized SSH service, built on top of of... 23 [OK] ... ...
3. Seznam všech kontejnerů
# docker ps -a
4. Uveďte pouze spuštěné kontejnery
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4293c8265d00 centos "/bin/bash" 22 hours ago Up 9 seconds agitated_poincare
5. Zastavte kontejner
Získejte ID kontejneru z výše uvedeného záznamu a použijte jej k zastavení příslušného kontejneru:
# docker stop 4293c8265d00
6:Restartujte službu docker
# systemctl restart docker.service