Jedním z nejlepších způsobů automatizace Dockeru k automatickému vytváření obrázků je použití souboru Docker. Soubor Dockerfile je jednoduchý textový dokument, který obsahuje všechny příkazy, které může uživatel volat na příkazovém řádku, aby sestavil obrázek.
V tomto kurzu vám ukážeme postupný proces vytváření souboru Dockerfile pro aplikaci nodeJS, vytváření Dockerignore a docker-compose.
Vytvoření Dockerfile, Dockerignore a Docker Compose
1. Dockerfile
Vytvoříme Dockerfile uvnitř zdrojového adresáře.
vim Dockerfile
Nejprve definujte, z jakého obrazu chceme začít stavět. Zde jsem přidal svůj alpský linuxový ukotvitelný obraz, který zahrnuje nodejs10 a NPM. Postupujte podle našeho Docker image a průvodce docker hubem, abyste vytvořili image dockerů a vytáhli je do centra dockerů.
OD Ddarshana / alpinenode10
Příkaz MAINTAINER zobrazuje autora generovaných obrázků.
MAINTAINER darshana (D.Darshana @ fosslinux.com)
Příkaz RUN se používá k provedení všech příkazů. Zde nainstalujeme zvlněný balíček na Alpine Linux.
RUN apk add --update curl && rm -rf / var / cache / apk / *
Vytvořte nový adresář s názvem Aplikace, který bude držet kód aplikace uvnitř obrázku.
RUN mkdir / aplikace
Direktiva WORKDIR se používá k nastavení místa, kde má být proveden příkaz definovaný pomocí CMD.
WORKDIR / aplikace
Zkopírujte balíček.soubor JSON.
KOPÍROVAT balíček.JSON .
Nainstalujte aplikaci nodeJS a závislosti.
SPUŠTĚNÍ instalace za minutu
Zdroj balíčku aplikace.
KOPÍROVAT…
Stáhněte si soubor proměnné prostředí. V našem případě máme samostatné umístění pro ukládání globálních konfigurací.
RUN curl -O https: // demofiles.fosslinux / nodejs /.env
Spusťte aplikaci a spustí se na výchozím portu 3000.
CMD ["npm", "start"]
Tady je náš úplný Dockerfile.
OD Ddarshana / alpinenode10 MAINTAINER darshana (D.Darshana @ fosslinux.com) # Nainstalujte balíček „curl“ RUN apk add --update curl && rm -rf / var / cache / apk / * # Vytvořit adresář aplikace RUN mkdir / app WORKDIR / app # copy balíček.balíček JSON COPY.JSON . # Nainstalovat závislosti aplikací RUN npm install # Bundle zdroj aplikace KOPIE… # Stáhnout soubor proměnné prostředí z našeho umístění v síti RUN curl -O https: // demofiles.fosslinux / nodejs /.env # Spustit APP CMD ["npm", "start"]
Uložte a ukončete soubor. Tady je můj adresář NodeJs App Code.
2. Vytváření souboru Dockerignore
Použití souboru „dockerignore“ zabrání kopírování našich místních modulů a dalších nežádoucích souborů do obrazu Dockeru a možnosti přepsání modulů nainstalovaných ve vašem obrazu. Důrazně doporučujeme, abyste jej používali společně s Dockerfiles.
Soubor Dockerignore by měl být ve stejném adresáři jako Dockerfile.
vim .dockerignore
Zde jsme přidali následující obsah:
.env test Dockerfile node_modules .vscode .eslintrc.js
Uložte a ukončete soubor.
Vytvořte image Dockeru
docker build . -t fosslinuxdemo / nodejsapp
Dokončení procesu by mělo nějakou dobu trvat. Prosím, buďte trpěliví.
Seznam obrázků Dockeru
Spuštěním následujícího příkazu zobrazte seznam obrázků:
docker obrázky
Spustit obrázek Dockeru
docker run -itd -p 3000: 3000 fosslinuxdemo / nodejsapp
-itd: - provede kontejner na pozadí
-p: - příznak přesměruje veřejný port na soukromý port uvnitř kontejneru
4. Docker Compose
Compose je nástroj pro definování a spouštění aplikací Docker s více kontejnery. S Compose použijeme soubor YAML ke konfiguraci aplikačních služeb. Poté jediným příkazem vytvoříme a spustíme všechny služby z naší konfigurace.
Nainstalujte Compose
Před instalací skladače musíte nejprve nainstalovat Docker.
Spuštěním tohoto příkazu stáhněte aktuální stabilní verzi Docker Compose:
curl -L "https: // github.com / docker / compose / releases / download / 1.25.0 / docker-compose - $ (uname -s) - $ (uname -m) "-o / usr / local / bin / docker-compose
Použít spustitelná oprávnění na binární soubor:
chmod + x / usr / local / bin / docker-compose
Vyzkoušejte instalaci:
docker-compose --version
5. Instalace WordPress a MySQL pomocí Docker Compose
Vytvořte složku pro svůj projekt:
mkdir / opt / fosslinuxdemo
Přejděte do vytvořeného adresáře:
cd / opt / fosslinuxdemo
Zde vytvoříme datové adresáře pro náš kontejner MySQL a kontejner WordPress.
mkdir data mkdir html
Připojíme výše uvedené adresáře k našim kontejnerům.
Vytvořte soubor skladatele:
vim docker-compose.yml
Tady je náš docker-compose soubor. Zkopírujte následující obsah do souboru.
verze: „3.7 'služby: db: container_name: fosslinux-mysql restart: always image: mysql: 5.7 svazků: - / opt / fosslinuxdemo / data: / var / lib / mysql příkaz: --default-authentication-plugin = mysql_native_password prostředí: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress porty: - "3306: sítě: - fosslinux_net wp: container_name: fosslinux-wp restart: vždy svazky: - "/ opt / fosslinuxdemo / html: / var / www / html" záleží_on: - db obrázek: porty wordpress: - "80:80" prostředí: WORDPRESS_DB_HOST : db: 3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: sítě wordpress: - fosslinux_net sítě: fosslinux_net:
Poznamenejte si číslo verze. Další podrobnosti o verzi souboru versioning @ composer.
verze: „3.7 '
služby: db:
Služba v Compose je spuštěný kontejner a definice služby specifikují informace o tom, jak bude každý kontejner spuštěn. Naše definice služby „db“ má různé možnosti.
container_name: fosslinux-mysql
- Určuje název kontejneru
restart: vždy
- Definuje zásadu restartování kontejneru
obrázek: mysql: 5.7
- MySQL 5.7 oficiální obrázek ukotvitelného panelu
- Oficiální ukotvitelný obrázek WordPress
svazky: https: // hub.přístavní dělník.com / _ / mysql - / opt / fosslinuxdemo / data: / var / lib / mysql
Zde připojíme svazek „/ opt / fosslinuxdemo / data“ do adresáře „/ var / lib / mysql“ v kontejneru. Obecně se jedná o standardní datový adresář pro MySQL na většině distribucí.
příkaz: --default-authentication-plugin = mysql_native_password
Tato možnost určuje příkaz k přepsání výchozí instrukce CMD pro obrázek.
životní prostředí:
Definujte proměnné prostředí. Zde nastavujeme proměnné MySQL.
porty: - "3306: 3306"
- Mapování přístavů.
sítě: - fosslinux_net
- Definuje síť pro kontejner
záleží_na: - db
To představuje, že naše kontejnery budou spuštěny v pořadí podle závislosti, přičemž kontejner „wp“ začíná po kontejneru „db“.
Nyní můžeme vytvořit naše prostředí.
docker-compose up -d
-d, který bude spouštět kontejnery na pozadí.
Seznam ukotvitelných kontejnerů:
docker ps -a
Zkontrolujte protokoly kontejneru WordPress:
docker logs -f fosslinux-wp
Nyní přejděte do webového prohlížeče a zadejte svou IP adresu, abyste získali instalační okno WordPress.
Pokračujte kliknutím, pokračujte a dokončete proces instalace WordPress.
To je vše o práci s Dockerfiles a Docker Compose. Doufám, že se vám článek líbil.