Vienas iš geriausių būdų automatizuoti „Docker“ kurti vaizdus automatiškai yra „Dockerfile“ naudojimas. „Dockerfile“ yra paprastas tekstinis dokumentas, kuriame yra visos komandos, kurias vartotojas galėjo iškviesti komandinėje eilutėje norėdamas surinkti vaizdą.
Šioje pamokoje mes jums parodysime nuoseklų „Dockerfile for nodeJS“ kūrimo, „Dockerignore“ kūrimo ir „Docker-compose“ kūrimo procesą.
„Dockerfile“, „Dockerignore“ ir „Docker Compose“ kūrimas
1. Dockerfile
Šaltinio kataloge sukursime „Dockerfile“.
vim Dockerfile
Pirmiausia apibrėžkite, nuo kokio vaizdo mes norime pradėti kurti. Čia aš pridėjau savo „Alpine Linux“ doko vaizdą, kuriame yra „nodejs10“ ir „NPM“. Vadovaukitės mūsų „Docker“ atvaizdų ir „Docker hub“ vadovu, kad sukurtumėte „Docker“ vaizdus ir patraukite juos prie „Docker Hub“.
NUO ddarshana / alpinenodo10
MAINTAINER komanda rodo sugeneruotų vaizdų autorių.
PRIEŽIŪROS darshana (D.Darshana @ fosslinux.com)
RUN komanda naudojama bet kokioms komandoms vykdyti. Čia mes įdiegiame garbanos paketą „Alpine Linux“.
Paleisti APK papildymą - atnaujinti garbanos && rm -rf / var / cache / apk / *
Sukurkite naują katalogą, pavadintą Program, kuris ketina laikyti programos kodą atvaizdo viduje.
Paleisti „mkdir“ / programą
WORKDIR direktyva naudojama nustatyti, kur turi būti vykdoma komanda, apibrėžta CMD.
WORKDIR / programa
Kopijuoti paketą.JSON failas.
KOPIJOS paketas.Json .
Įdiekite „nodeJS“ programą ir priklausomybes.
RUN npm įdiegti
Grupuoti programos šaltinį.
KOPIJA ..
Atsisiųskite aplinkos kintamojo failą. Mūsų atveju turime atskirą vietą, kur saugoti pasaulines konfigūracijas.
Paleisti garbaną -O https: // demofilai.„fosslinux“ / „nodejs“ /.env
Paleiskite programą ir ji bus paleista numatytame 3000 prievade.
CMD ["npm", "pradžia"]
Čia yra visa mūsų „Dockerfile“.
NUO ddarshana / alpinenode10 PRIEŽIŪROS darshana (D.Darshana @ fosslinux.com) # Įdiekite „curl“ paketą RUN apk add - atnaujinkite curl && rm -rf / var / cache / apk / * # # Sukurkite programų katalogą RUN mkdir / app WORKDIR / app # copy package.„json COPY“ paketas.Json . # Įdiekite programų priklausomybes RUN npm install # Bundle app source COPY… # Atsisiųskite aplinkos kintamojo failą iš mūsų tinklo vietos RUN curl -O https: // demofiles.„fosslinux“ / „nodejs“ /.env # Paleisti APP CMD ["npm", "start"]
Išsaugokite ir išeikite iš failo. Čia yra mano „NodeJs“ programų kodų katalogas.
2. Dockerignore failo kūrimas
Naudojant „dockerignore“ failą, mūsų vietiniai moduliai ir kiti nepageidaujami failai negali būti nukopijuoti į „Docker“ vaizdą ir galimybė perrašyti vaizde įdiegtus modulius. Mes labai rekomenduojame jį naudoti kartu su „Dockerfiles“.
„Dockerignore“ failas turėtų būti tame pačiame kataloge kaip ir „Dockerfile“.
vim .dokeris
Čia mes pridėjome šį turinį:
.env „Dockerfile“ mazgo_modulių testas .vscode .eslintrc.js
Išsaugokite ir išeikite iš failo.
Sukurkite „Docker“ vaizdą
dokininko statinys . -t fosslinuxdemo / nodejsapp
Procesas turėtų užtrukti šiek tiek laiko. Būkite kantrūs.
Išvardinkite „Docker“ vaizdus
Paleiskite šią komandą, kad išvardytumėte vaizdus:
dokininkų vaizdai
Paleiskite „Docker“ vaizdą
„docker run“ -tit -p 3000: 3000 „fosslinuxdemo“ / „nodejsapp“
-itd: - vykdo talpyklą fone
-p: - vėliava nukreipia viešąjį uostą į privatų uostą konteinerio viduje
4. „Docker Compos“
„Compose“ yra įrankis, skirtas apibrėžti ir paleisti kelių konteinerių „Docker“ programas. Naudodami „Compose“, naudosime YAML failą, kad sukonfigūruotume programų paslaugas. Po to, naudodami vieną komandą, sukursime ir paleisime visas paslaugas iš savo konfigūracijos.
Įdiekite „Compose“
Prieš diegdami kompozitorių, pirmiausia turite įdiegti „Docker“.
Vykdydami šią komandą atsisiųskite dabartinį stabilų „Docker Compose“ leidimą:
garbanos -L "https: // github.com / docker / compose / releases / download / 1.25.0 / docker-compose - $ (uname -s) - $ (uname -m) "-o / usr / local / bin / docker-compose
Taikykite vykdomąjį leidimą dvejetainiui:
chmod + x / usr / local / bin / docker-compose
Išbandykite diegimą:
docker-compose - versija
5. „WordPress“ ir „MySQL“ diegimas naudojant „Docker Compose“
Sukurkite aplanką savo projektui:
mkdir / opt / fosslinuxdemo
Eikite į sukurtą katalogą:
cd / opt / fosslinuxdemo
Čia sukursime duomenų katalogus savo „MySQL“ ir „WordPress“ talpykloms.
mkdir duomenys mkdir html
Pirmiau išvardytus katalogus pritvirtinsime prie savo konteinerių.
Sukurkite kompozitoriaus failą:
vim docker-kurti.yml
Čia yra mūsų dokininko kūrimo failas. Nukopijuokite šį turinį į savo failą.
versija: „3.7 'paslaugos: db: container_name: fosslinux-mysql restart: always image: mysql: 5.7 tomai: - / opt / fosslinuxdemo / data: / var / lib / mysql komanda: --default-authentication-plugin = mysql_native_password aplinka: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASS6ORD: "WordPress": tinklai: - „fosslinux_net wp“: „container_name“: „fosslinux-wp“ paleidimas iš naujo: visada tūriai: - "/ opt / fosslinuxdemo / html: / var / www / html" priklauso_on: - db image: wordpress ports: - "80:80" aplinka: WORDPRESS_DB_HOST : db: 3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress tinklai: - fosslinux_net tinklai: fosslinux_net:
Atkreipkite dėmesį į versijos numerį. Daugiau informacijos apie @ kompozitoriaus failo versiją.
versija: „3.7 '
paslaugos: db:
„Compose“ paslauga yra veikiantis sudėtinis rodinys, o paslaugų apibrėžimuose nurodoma informacija, kaip veiks kiekvienas sudėtinis rodinys. Mūsų „db“ paslaugos apibrėžimas turi įvairias galimybes.
konteinerio_vardas: fosslinux-mysql
- Nurodo sudėtinio rodinio pavadinimą
paleisti iš naujo: visada
- Apibrėžia sudėtinio rodinio perkėlimo politiką
vaizdas: mysql: 5.7
- „MySQL“ 5.7 oficialus dokininko atvaizdas
- „WordPress“ oficialus dokininko vaizdas
tomai: https: // stebulė.dokininkas.com / _ / mysql - / opt / fosslinuxdemo / data: / var / lib / mysql
Čia talpyklą „/ opt / fosslinuxdemo / data“ prijungiame prie konteinerio katalogo „/ var / lib / mysql“. Paprastai tai yra standartinis „MySQL“ duomenų katalogas daugumoje paskirstymų.
komanda: --default-authentication-plugin = mysql_native_password
Ši parinktis nurodo komandą, kad būtų pakeista numatytoji paveikslėlio CMD instrukcija.
aplinka:
Apibrėžkite aplinkos kintamuosius. Čia mes nustatome „MySQL“ kintamuosius.
prievadai: - "3306: 3306"
- Uosto žemėlapiai.
tinklai: - fosslinux_net
- Nurodo sudėtinio rodinio tinklą
priklauso_on: - db
Tai reiškia, kad mūsų konteineriai prasidės priklausomybės tvarka, o „wp“ konteineris prasidės po „db“ konteinerio.
Dabar galime susikurti savo aplinką.
dokininkas-komponuok -d
-d vėliava, kuri veiks konteinerius fone.
Pateikite dokavimo konteinerių sąrašą:
dokininkas ps -a
Patikrinkite „WordPress Container“ žurnalus:
dokų žurnalai -f fosslinux-wp
Dabar eikite į žiniatinklio naršyklę ir įveskite savo IP, kad gautumėte „WordPress“ diegimo langą.
Spustelėkite, tęskite ir užbaikite „WordPress“ diegimo procesą.
Viskas apie darbą su „Dockerfiles“ ir „Docker Compose“. Tikiuosi, kad jums patiko straipsnis.