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

Přístavní dělník

Docker je rozšiřitelný open-source engine poháněný Linuxovými kontejnery, který automatizuje nasazení aplikací jako přenosné, lehké a soběstačné kontejnery. Pro účely tohoto tutoriálu budeme předpokládat, že jste postupovali podle kroků uvedených v našem Nastavení a zabezpečení výpočetní instance, že váš systém je aktuální a že jste se k Linode přihlásili jako root přes SSH.

Instalace

Pro účely této příručky vám ukážeme, jak nainstalovat Docker na Ubuntu 12.04 i CentOS 6.4 Docker poskytuje úložiště pro každou z těchto distribucí, což usnadňuje instalaci.

Ubuntu 12.04 64bit

Zde přidáme úložiště spravované Dockerem pro Ubuntu a nainstalujeme software.

  1. Docker je k dispozici jako balíček v repozitářích Docker’s Ubuntu, ale pouze pro 64bit. Nejprve budete muset přidat klíč úložiště Docker pomocí apt-key :

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
    
  2. Přidejte úložiště Docker do svých zdrojů apt:

    echo "deb http://get.docker.io/ubuntu docker main" | sudo tee /etc/apt/sources.list.d/docker.list
    
  3. Spusťte následující pro aktualizaci apt-get a instalaci lxc-docker :

    sudo apt-get update
    sudo apt-get install lxc-docker
    
  4. Chcete-li ověřit, zda byla instalace úspěšně dokončena, spusťte příklad kontejneru Ubuntu. Tento příkaz automaticky vezme všechny chybějící obrázky, spustí kontejner a poskytne interaktivní bash session:

    sudo docker run -i -t ubuntu /bin/bash
    

    Výstup by měl vypadat takto:

    # docker run -i -t ubuntu /bin/bash
    Unable to find image 'ubuntu' (tag: latest) locally
    Pulling repository ubuntu
    8dbd9e392a96: Download complete
    b750fe79269d: Download complete
    27cf78414709: Download complete
    [email protected]:/#
  5. Chcete-li kontejner opustit, zadejte exit .

CentOS 6 64bit

Docker je dostupný v úložišti EPEL jako docker-io balíček pouze pro 64bit.

  1. Chcete-li přidat úložiště EPEL, nainstalujte nejnovější balíček epel-release.

  2. Chcete-li nainstalovat Docker, spusťte následující příkaz:

    sudo yum -y install docker-io
    
  3. Chcete-li spustit démona Docker, vyvolejte service :

    sudo service docker start
    
  4. Pokud chcete, aby se démon Docker spustil při bootování, zadejte následující příkaz:

    sudo chkconfig docker on
    
  5. Chcete-li ověřit, že instalace proběhla úspěšně, spusťte příklad kontejneru Fedory. Tento příkaz automaticky vezme všechny chybějící obrázky, spustí kontejner a poskytne interaktivní bash session:

    sudo docker run -i -t fedora /bin/bash
    
  6. Chcete-li kontejner opustit, zadejte exit .

Co mohu dělat s Dockerem?

Docker umožňuje uživatelům zabalit jejich aplikace a konfigurace do odlehčených obrazů pro nasazení jako přenosné kontejnery.

Ahoj světe

Chcete-li spustit kontejner Docker, který vytiskne „hello world“, spusťte následující příkaz:

docker run ubuntu /bin/echo hello world

Mělo by vrátit hello world .

To říká Dockeru, aby udělal řadu věcí:

  1. Pokud obrázek (Ubuntu) ještě lokálně neexistuje, stáhněte si ho z indexu Docker.
  2. Vytvořte nový kontejner se základním obrazem Ubuntu se souborovým systémem pro čtení a zápis a síťovým rozhraním.
  3. Přidělte kontejneru IP adresu; nastavte NAT pro přesměrování provozu do az kontejneru.
  4. Spusťte příkaz /bin/echo hello world a vytiskněte výstup.
  5. Po dokončení hlavního procesu se kontejner ukončí.

Zápis dockerfile pro Nginx

Při vytváření obrazu se Docker řídí instrukční sadou v souboru s názvem Dockerfile . Všimněte si, že soubor musí být pojmenován Dockerfile a všechny soubory nebo složky požadované souborem Dockerfile musí být ve stejném adresáři jako Dockerfile sám.

Spuštění programu jako echo v kontejneru Docker je docela jednoduché. U programů, které fungují jako servery, jako je Nginx, však budete muset zajistit, aby byl program nakonfigurován tak, aby se sám démonizoval.

Toto je příklad Dockerfile pro Nginx:

FROM        ubuntu:12.04
MAINTAINER  Jon Chen "[email protected]"

RUN         echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list
RUN         apt-get update
RUN         apt-get install -y nginx

RUN         echo "\ndaemon off;" >> /etc/nginx/nginx.conf
VOLUME      /etc/nginx/sites-enabled
VOLUME      /var/log/nginx

EXPOSE      80
CMD         ["nginx"]

Syntaxe Dockerfile vypadá takto:

# Comment
INSTRUCTION arguments

Docker prochází pokyny Dockerfile shora dolů v daném pořadí. První pokyn musí být FROM , který určuje základní obrázek, ze kterého chcete vytvořit nový obrázek:

FROM ubuntu:12.04

Tím se nastaví oficiální obrázek Ubuntu 12.04 jako základní obrázek. K definování autora obrázku budete také chtít použít instrukci MAINTENER:

MAINTAINER Jon Chen "[email protected]"

Dále RUN instrukce provede příkazy na obrázku a potvrdí výsledky. Každé potvrzení se uloží a použije pro další instrukci. Například toto RUN řádek nahrazuje obsah /etc/apt/sources.list na obrázku s deb http://archive.ubuntu.com/ubuntu precise main universe :

RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list

U programů, jako je Nginx, je důležité pamatovat na to, abyste zajistili, že program neběží jako démon. Výchozí chování Nginxu jako démona je oddělit pracovní procesy a poté opustit hlavní proces. Protože Docker sleduje pouze PID pro původní proces, kontejner se místo trvalého běhu předčasně zastaví. Chcete-li deaktivovat démonizaci, přidejte konfigurační direktivu daemon off do /etc/nginx/nginx.conf :

RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf

Chcete-li vystavit port uvnitř kontejneru vnějšku kontejneru, použijte instrukci EXPOSE:

EXPOSE 80

Instrukce CMD definuje výchozí příkaz, který se má spustit při spuštění kontejneru. V našem příkladu chceme spustit Nginx:

CMD ["nginx"]

Ve výchozím nastavení kontejnery Docker nemají trvalé úložiště. Chcete-li sdílet data mezi kontejnery, použijte funkci VOLUME:

VOLUME /etc/nginx/sites-enabled
VOLUME /var/log/nginx

Chcete-li připojit adresář z hostitele do kontejneru, budete muset při spuštění kontejneru zadat hostitelský adresář, odpovídající adresář kontejneru a oprávnění k adresáři na příkazovém řádku:

-v=[]: Create a bind mount with: [host-dir]:[container-dir]:[rw|ro].
If "host-dir" is missing, then docker creates a new volume.

Chcete-li vytvořit tento obrázek, spusťte následující příkaz ve stejném adresáři jako Dockerfile. Pomocí -t repo/tag můžete určit úložiště a značku pro svůj obrázek :

docker build -t bsdlp/nginx .

Spuštěním následujícího příkazu přidejte /etc/nginx/sites-enabled a /var/log/nginx jako svazky z hostitele do kontejneru, spusťte kontejner jako démona a vystavte port 80 z kontejneru jako port 80 na hostiteli:

docker run -d -p 80:80 -v /etc/nginx/sites-enabled:/etc/nginx/sites-enabled -v /var/log/nginx:/var/log/nginx bsdlp/nginx

Další informace

Další informace o tomto tématu můžete získat v následujících zdrojích. Přestože jsou poskytovány v naději, že budou užitečné, vezměte prosím na vědomí, že nemůžeme ručit za přesnost nebo aktuálnost externě hostovaných materiálů.

  • Příručka Začínáme s Docker
  • Docker na GitHubu
  • Oficiální index obrázků Docker

Docker
  1. Jak nainstalovat Docker na Ubuntu 16.04

  2. Problémy s Dockerem v Ubuntu 20.04?

  3. Jak nainstalovat Docker na Ubuntu 18.04?

  1. Jak nainstalovat Docker na Ubuntu 18.04

  2. Jak nainstalovat Docker na Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  3. Instalace Dockeru (Ubuntu)

  1. Jak nainstalovat Kubernetes na Ubuntu 18.04

  2. Jak nainstalovat Docker Compose na Ubuntu 18.04

  3. Jak nainstalovat Rancher na Ubuntu