GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Co je Docker, Rozdíl mezi Dockerem a VM, Instalace Dockeru a jeho použití

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.

Virtuální stroje Kontejnery 1. Potřebuje hypervizor a plný OS uvnitř 1. Hovoří s hostitelským jádrem 2. Větší půdorys (RAM a úložný prostor) 2. Menší rozměry (žádná RAM a rozdílové úložiště) 3. Virtuální počítače spotřebovávají úložný prostor pro každou instanci ~1,2 GB 3. Zabírá velmi méně místa ~2,5 MB 4. Těžší 4. Lehký 5. Doba spuštění virtuálních strojů je v řádu minut 5. Doba spuštění je v řádu sekund 6. Nasazení je náročné. 6. Snadné nasazení s minimálními požadavky na provoz aplikace 7. Pomalejší 7. Rychlejší 8. Bezpečnostní problémy běžícího OS 8. Bezpečnostní problémy omezené na aplikace

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

Docker
  1. Jaký je rozdíl mezi InnoDB a MyISAM?

  2. Jaký je rozdíl mezi kontejnery LXC, LXD a Docker

  3. Jaký je rozdíl mezi fsck a e2fsck?

  1. rozdíl mezi podmanem a dockerem.

  2. Jaký je rozdíl mezi ls a l?

  3. Jaký je rozdíl mezi `su -` a `su --login`?

  1. Rozdíl mezi CMD a ENTRYPOINT v Docker Images

  2. Jaký je rozdíl mezi COPY a ADD v Dockerfiles?

  3. Jaký je rozdíl mezi strtok_r a strtok_s v C?