Docker-Compose je nástroj příkazového řádku pro definování a správu vícekontejnerových dokovacích kontejnerů, jako by šlo o jedinou službu. Compose je napsán v pythonu a lze jej nainstalovat pomocí příkazu Python pip. Pomocí compose můžeme spustit více kontejnerů dockerů pouze pomocí jediného příkazu. Umožňuje vám vytvořit kontejner jako službu, která je skvělá pro vaše vývojové, testovací a pracovní prostředí.
V tomto tutoriálu vás krok za krokem provedu používáním docker-compose. Nasadíme 'Wordpress s Nginx, MySQL a PHP-FPM. Každá služba má svůj vlastní kontejner a budeme používat obrázky z registru docker hub. Ukážu vám, jak vytvořit kontejnery z obrázků dockeru a spravovat všechny kontejnery pomocí docker-compose.
Předpoklad
- Ubuntu 16.04
- Kořenová oprávnění
Krok 1 – Instalace Dockeru
Začneme od začátku instalací dockeru a docker compose ručně pomocí příkazu apt.
Než začneme, aktualizujte úložiště Ubuntu a nainstalujte nejnovější aktualizace:
aktualizace sudo apt-get
aktualizace sudo apt-get
Ve výchozím nastavení je docker k dispozici v úložišti Ubuntu, takže můžeme pokračovat v jeho instalaci:
sudo apt-get install -y docker.io
Po dokončení instalace spusťte docker a přidejte jej, aby se automaticky spustil při spouštění:
systemctl start docker
systemctl enable docker
Nyní otestujte instalaci dockeru pomocí příkazu níže:
Docker spustit hello-world
Uvidíte hello-world z dockeru.
Krok 2 – Instalace Docker-Compose
Docker-compose je skript napsaný v pythonu, je dostupný v pythonovém úložišti PyPI a lze jej nainstalovat pomocí python pip. Nejprve tedy musíme nainstalovat python a python pip do našeho systému.
Nainstalujte python a python-pip:
sudo apt-get install -y python python-pip
Dále nainstalujte docker-compose pomocí příkazu pip:
pip install docker-compose
počkejte na dokončení procesu instalace. Poté zkontrolujte instalaci pomocí příkazu docker-compose:
docker-compose -v
Získáte verzi docker-compose.
Krok 3 – Nastavení Wordpressu
Nyní jsou v systému nainstalovány docker a docker-compose. V tomto kroku vám ukážeme, jak vytvořit a nastavit prostředí docker-compose pro náš projekt WordPress.
Nasadíme PHP aplikaci „Wordpress“ s Nginx jako webovým serverem a MariaDB pro databázi MySQL jako docker kontejnery spravované docker-compose. Každá aplikace (Wordpress, Nginx a MySQL) poběží ve svém vlastním kontejneru, seznam můžete vidět níže:
- Nginx :Používáme oficiální obrázek dockeru, nejnovější verzi 'nginx:nejnovější'.
– Wordpress :Wordpress poskytuje některé obrázky dockeru na docker-hubu a my budeme používat WordPress 4.7 s PHP-FPM 7.0.
- MySQL :Použijeme oficiální kontejner MariaDB, nejnovější verzi.
Potřebujeme tedy 3 obrazy dockeru z registru docker hub.
Nebudeme spouštět docker jako root, použijeme normálního uživatele Linuxu. Takže jednoduše vytvořte nového uživatele pomocí příkazu níže (můžete zde použít jiné uživatelské jméno, jen se ujistěte, že uživatel ještě neexistuje. Pokud zvolíte jiné jméno, ujistěte se, že je změníte ve všech příkazech, které následují v tomto tutoriálu):
useradd -m -s /bin/bash hakase
passwd hakase
Nyní přidejte uživatele do 'dockeru ', aby uživatel mohl použít příkaz docker a restartovat službu docker:
usermod -a -G docker hakase
systemctl restart docker
Přihlaste se k uživateli 'hakase' a vytvořte nový adresář pro projekt WordPress:
su - hakase
mkdir -p wordpress-compose
cd wordpress-compose/
Dále vytvořte nový soubor s názvem 'docker-compose.yml “ a vytvořte nový adresář pro projekt. Stačí zadat níže uvedené příkazy:
touch docker-compose.yml
mkdir -p nginx/
mkdir -p db-data/
mkdir -p logs/nginx/
mkdir -p wordpress/Seznam souborů a adresářů projektu:
- docker-compose.yml :Toto je konfigurační soubor docker-compose, musíte jej vytvořit při spouštění nového projektu docker-compose.
– nginx/ :Tento adresář se používá pro naši další konfiguraci nginx, jako je virtuální hostitel atd.
- db-data/ :Svazek/adresář pro data mysql. Sql z dat '/var/lib/mysql' je připojen k adresáři db-data.
- protokoly/ :Adresář pro protokol aplikací, nginx, mariadb a php-fpm.
- wordpress/: V tomto adresáři budou dostupné všechny soubory wordpress.
V adresáři 'nginx' vytvořte nový konfigurační soubor pro našeho virtuálního hostitele wordpress.
Vytvořte nový soubor wordpress.conf:
vim nginx/wordpress.confVložte konfiguraci níže:
server {
listen 80;
název_serveru wp-hakase.co;
root /var/www/html;
index index.php;
access_log /var/log/nginx/hakase-access.log;
error_log /var/log/nginx/hakase-error.log;
umístění / {
try_files $uri $uri/ /index.php?$args;
}
umístění ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass wordpress:9000;
fastcgi_index index.php;
zahrnout fastcgi_param zahrnout fastcgi_param SCRO PT_FI> Fastcgi_param s SC R PT FI> Fastcgi_param s $fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}Uložte soubor a ukončete vim.
Krok 4 – Konfigurace Docker-Compose
V tomto kroku začneme upravovat soubor docker-compose.yml. Když chcete spustit projekt docker-compose, ujistěte se, že jste nejprve vytvořili soubor docker-compose.yml, jak to děláme níže.
Upravte docker-compose.yml pomocí vim:
vim docker-compose.ymlDefinujte své služby, na prvním řádku definujeme Nginx. Používáme oficiální image dockeru Nginx, nejnovější verzi a konfigurujeme mapování portů pro port 80 na kontejneru na port 80 na hostiteli. Dále nakonfigurujte svazky dockeru, svazek pro konfiguraci našeho virtuálního hostitele Nginx, svazek pro soubory protokolu Nginx a svazek webového kořenového adresáře '/var/www/html'. Kontejner Nginx je propojen s kontejnerem WordPress.
Vložte konfiguraci níže:
nginx:
image:nginx:latest
porty:
- '80:80'
svazky:
- ./nginx:/etc/nginx/ conf.d
- ./logs/nginx:/var/log/nginx
- ./wordpress:/var/www/html
odkazy:
– wordpress
restart:vždyDále definujte server MySQL. Používáme obraz MariaDB, nejnovější verzi. Nakonfigurujte mapování portů pro kontejner na portu 3306 a nakonfigurujte kořenové heslo MySQL pomocí proměnné prostředí 'MYSQL_ROOT_PASSWORD'. Nakonec nakonfigurujte objem kontejneru pro datový adresář MySQL.
Vložte konfiguraci níže:
mysql:
obrázek:mariadb
porty:
- '3306:3306'
svazky:
- ./db-data:/var/lib/ mysql
prostředí:
- MYSQL_ROOT_PASSWORD=aqwe123
restart:vždyPoté nakonfigurujeme službu WordPress pomocí obrazu dockeru WordPress 4.7 s nainstalovaným PHP-FPM 7.0. Nakonfigurujte port pro PHP-fpm na portu 9000, povolte svazek dockeru pro webový adresář '/var/www/html' do hostitelského adresáře 'wordpress', nastavte databázi definováním proměnné prostředí WordPress a propojte službu WordPress s mysql.
Vložte konfiguraci níže:
wordpress:
obrázek:wordpress:4.7.1-php7.0-fpm
porty:
- '9000:9000'
svazky:
- . /wordpress:/var/www/html
prostředí:
- WORDPRESS_DB_NAME=wpdb
- WORDPRESS_TABLE_PREFIX=wp_
D - WORDPRESS_DB_ - WORDPRESS_DB_2 – WORDPRESS_DB_12 - WORDPRESS_DB_HOST / sq we 1 – WORDPRESS_DB_HOST / sq> odkazy:
– mysql
restart:vždyPo přidání tří částí do souboru docker-compose.yml soubor uložte a ukončete editor vim.
Naše konfigurace docker-compose je připravena.
Krok 5 – Spusťte Docker-compose
Začněte vytvářet nové kontejnery pomocí docker compose. Přejděte do adresáře wordpress-compose a spusťte nové kontejnery založené na našem souboru compose.
cd ~/wordpress-compose/
docker-compose up -dMůžete vidět výsledky příkazu. Byly vytvořeny tři kontejnery. Pojďme zkontrolovat stav kontejneru pomocí možnosti ps:
docker-compose psNíže je výsledek:
Pokud chcete vidět výstup protokolu z kontejneru, můžete použít následující příkazy:
protokoly docker-compose nginx
protokoly docker-compose mysql
protokoly docker-compose wordpressProtokoly kontejneru:
Poznámka :
Pokud v protokolu kontejneru WordPress uvidíte chybu o odmítnutí připojení MySQL, ignorujte ji.Krok 6 – Nainstalujte Wordpress
Než provedeme tento krok, zkontrolujme dostupné porty/otevřené porty v systému. Ujistěte se, že máte otevřené 3 porty, port 80, 3306 a port 9000.
netstat -plntuVýsledky jsou níže:
Nyní otevřete webový prohlížeč a zadejte adresu URL serveru nebo IP adresu.
http://IP_serveru/
Můžete se podívat na instalační stránku WordPressu. Vyberte jazyk a klikněte na tlačítko Pokračovat '.
Vyplňte podrobnosti o svém webu, jako je název webu, uživatel a heslo správce, svou e-mailovou adresu a poté klikněte na 'Instalovat Wordpress '.
Budete přesměrováni na 'Administrátorský panel Wordpress '.
A toto je můj ukázkový příspěvek na WordPressu ahoj světe.
Wordpress byl nainstalován pomocí docker-compose.
Krok 7 – Přístup ke kontejneru Docker
Toto je další krok, jak získat přístup ke kontejneru pomocí docker-compose. Zkontrolujte, zda jsou k dispozici všechny kontejnery, a ukažte jejich stav:
docker-compose psJiž máme 3 kontejnery, nyní se můžeme pokusit přihlásit ke každému kontejneru. Přihlaste se k prvnímu kontejneru Nginx pomocí příkazu docker-compose.
docker-compose exec nginx bashnginx :název služby v souboru docker-compose docker-compose.yml
bash :spusťte příkaz bash shell
Nyní zkontrolujte konfiguraci virtuálního hostitele WordPress.
cat /etc/nginx/conf.d/wordpress.conf
Soubory jsou dostupné v kontejneru.
Dále se zkuste přihlásit do kontejneru mysql a poté se přihlaste do prostředí mysql s naším heslem v souboru pro vytváření zpráv.
docker-compose exec mysql bash
mysql -u root -p
TYP MYSQL ROOT PASSWORDPodívejte se na seznam databází:
zobrazit databáze;Uvidíte naši databázi WordPress.
V kontejneru 'wordpress' uvidíte všechny soubory WordPress.
docker-compose exec wordpress bash
ls -lah
Všechny kontejnery jsou přístupné.
Jak nainstalovat OTRS (OpenSource Trouble Ticket System) na Ubuntu 16.04 Jak nainstalovat Elastic Stack na Ubuntu 16.04Ubuntu