Po předchozím Dockeru Tento tutoriál bude diskutovat o tom, jak uložit kontejner Docker do nového obrazu, odstranit kontejner a spustit Nginx webový server uvnitř kontejneru.
Požadavky
- Jak nainstalovat Docker a spustit kontejnery v CentOS/RHEL 8/7 – část 1
Jak spustit a uložit kontejner Docker
1. V tomto příkladu spustíme a uložíme založené na Ubuntu Docker kontejner, kde je Nginx server bude nainstalován. Před provedením jakýchkoli změn v kontejneru však nejprve spusťte kontejner pomocí níže uvedených příkazů, které aktualizují a nainstalují Nginx démona do obrazu Ubuntu:
# docker run ubuntu bash -c "apt-get -y update" # docker run ubuntu bash -c "apt-get -y install nginx"
Pokud se zobrazí chyba „E:Nelze najít balíček nginx ‘, pak se musíte připojit ke kontejneru s interaktivním CLI a nainstalovat nginx, jak je znázorněno.
# docker run -it ubuntu bash # apt install nginx # exit
2. Dále po Nginx je nainstalován balíček, zadejte příkaz docker ps -l
získat ID nebo jméno běžícího kontejneru.
# docker ps -l
A aplikujte změny spuštěním níže uvedeného příkazu:
# docker commit 5976e4ae287c ubuntu-nginx
Zde 5976e4ae287c
představuje kontejner ID
a ubuntu-nginx
představuje název nového obrázku, který byl uložen s potvrzenými změnami.
Chcete-li zjistit, zda byl nový obrázek úspěšně vytvořen, spusťte docker images
a zobrazí se seznam všech uložených obrázků.
# docker images
Je pravděpodobné, že proces instalace uvnitř kontejneru skončí rychle, což vede k neběžícímu kontejneru (kontejner je zastaven). V tomto případě docker ps
příkaz neukáže žádný výstup, protože není spuštěn žádný kontejner.
Aby bylo možné stále získat ID kontejneru, spusťte docker ps -a | head -3
pro výstup nejnovějších kontejnerů a identifikaci kontejneru na základě příkazu vydaného k vytvoření kontejneru a stavu opuštění.
3. Případně můžete aktivně zadávat relace kontejneru spuštěním docker run -it ubuntu bash
a spusťte další apt-get install nginx
příkaz. Zatímco je příkaz spuštěn, odpojte se od kontejneru pomocí Ctrl-p + Ctrl-q
klíče a kontejner budou pokračovat v běhu, i když instalační proces Nginx skončí.
# docker run -it ubuntu bash # apt-get install nginx
Poté pomocí docker ps
získejte ID spuštěného kontejneru a provést změny. Po dokončení znovu přejděte do konzoly kontejneru pomocí docker attach
a zadejte exit
k zastavení kontejneru.
# docker ps # docker attach 3378689f2069 # exit
4. Chcete-li dále otestovat, zda byl nedávný obrázek správně potvrzen (v tomto případě Nginx služba byla nainstalována), spusťte níže uvedený příkaz, abyste vygenerovali nový kontejner, který se zobrazí, pokud byl binární soubor Nginx úspěšně nainstalován:
# docker run ubuntu-nginx whereis nginx
5. K odstranění kontejneru použijte rm
příkaz proti ID nebo názvu kontejneru, které lze získat pomocí docker ps -a
příkaz:
# docker ps -a # sudo docker rm 36488523933a
Jak spustit Nginx v kontejneru Docker
6. V této části se zaměříme na to, jak můžete spouštět a přistupovat k síťové službě, jako je Nginx webový server uvnitř Dockeru pomocí ubuntu-nginx
obraz vytvořený dříve, kde byl nainstalován démon Nginx.
První věc, kterou musíte udělat, je vytvořit nový kontejner, namapovat porty hostitelského kontejneru a zadat shell kontejneru zadáním níže uvedeného příkazu:
# docker run -it -p 81:80 ubuntu-nginx /bin/bash # nginx &
Zde je -p
volba zpřístupní hostitelský port kontejnerovému portu. Zatímco hostitelský port může být libovolný s podmínkou, že by měl být dostupný (nesmí na něm naslouchat žádné jiné hostitelské služby), kontejnerový port musí být přesně ten port, kterému naslouchá vnitřní démon.
Jakmile se připojíte k relaci kontejneru, spusťte Nginx démona na pozadí a odpojte jej od kontejnerové konzoly stisknutím Ctrl-p + Ctrl-q
klíče.
7. Nyní spusťte docker ps
abyste získali stav vašeho běžícího kontejneru. Hostitelské síťové sokety můžete také zobrazit zadáním následujícího příkazu:
# docker ps OR # netstat -tlpn
8. Chcete-li navštívit stránku obsluhovanou kontejnerem Nginx, otevřete prohlížeč ze vzdáleného umístění ve vaší síti LAN a zadejte IP adresu svého počítače pomocí protokolu HTTP.
9. Chcete-li kontejner zastavit, spusťte následující příkaz následovaný ID nebo názvem kontejneru:
# docker ps # docker stop fervent_mccarthy # docker ps
Alternativně k zastavení běžícího kontejneru zadejte příkazový řádek shellu kontejneru a dokončete proces zadáním příkazu exit:
# docker attach fervent_mccarthy # exit
Uvědomte si, že použití tohoto druhu kontejneru ke spouštění webových serverů nebo jiných druhů služeb je nejvhodnější pouze pro vývojové účely nebo testy, protože služby jsou aktivní pouze tehdy, když je kontejner spuštěn. Opuštění kontejneru přeruší všechny spuštěné služby nebo jakékoli provedené změny.
Další čtení:
Část 3 :Automaticky vytvářejte a konfigurujte obrázky Docker pomocí Dockerfile na CentOS/RHEL 8/7Část 4 :Jak monitorovat Docker kontejnery v Linuxu