Unaweza kujiuliza DOCKERIZE ni nini. Inamaanisha kutumia Docker kuweka mradi wako wa dApp.
Docker ni jukwaa wazi la kukuza, kusafirisha, na kuendesha programu. Docker hukuwezesha kutenganisha programu zako na miundombinu yako ili uweze kutoa programu haraka.
Docker hukuruhusu kufunga na kuendesha programu yako kama chombo kimoja katika mazingira yaliyotengwa kwa urahisi inayoitwa CONTAINER.
Vyombo ni vyepesi na vina kila kitu kinachohitajika ili kuendesha programu, kwa hivyo huhitaji kutegemea kile kilichosakinishwa kwenye seva pangishi. Unaweza kushiriki vyombo unapofanya kazi, na uhakikishe kuwa kila mtu unayeshiriki naye anapata chombo kile kile kinachofanya kazi kwa njia sawa.
Kwa mfano, wewe na wenzako mnafanyia kazi mradi wa dApp unaotumia Node.js na Hardhat. Hapo awali, ulianzisha mradi kwenye mashine yako ya karibu, ukijua kwamba kabla ya wenzako kuendesha programu ndani ya nchi, watahitaji kusakinisha Node.js na Hardhat kwenye mifumo yao. Sasa, hebu fikiria mmoja wa wenzako anatumia mashine ambayo haioani na Node.js na Hardhat. Je, ungewezaje kutatua tatizo hili?
Ukiwa na Docker, unaweza kufunga programu yako, pamoja na utegemezi wake wote, kwenye chombo kimoja ambacho kinaweza kufanya kazi kwenye mfumo wowote wa uendeshaji. Hii hutatua suala la kusakinisha programu au vitegemezi kando kwenye mashine tofauti.
Baada ya kuhifadhi ombi lako, unaifanyaje iendeshwe?
Kama msanidi programu ya mbele, unapoanzisha programu mpya ya React, kwa kawaida huwa unaendesha npx create-react-app
au npm init vite@latest
. Kwa mradi uliopo, kawaida ungeendesha git pull
ikifuatiwa na npm install
ili uifanye kazi ndani. Vile vile, ili kuendesha chombo, unahitaji kitu kinachoitwa picha ya chombo .
Picha ya kontena ni kifurushi kilichosanifiwa ambacho kinajumuisha faili zote, jozi, maktaba na usanidi unaohitajika ili kuendesha programu yako ndani ya kontena. Ni kama kuweka kila kitu pamoja ili kiweze kufanya kazi kwa uthabiti katika mazingira yoyote.
Tazama hapa chini kwa picha ya chombo:
Katika sehemu hii, utajifunza jinsi ya kuweka vyombo na kushiriki programu yako.
Kwenye saraka yako ya mizizi, anzisha docker kwa kutumia amri hii ya haraka:
docker init
Toa majibu kwa vidokezo
? What application platform does your project use? Node ? What version of Node do you want to use? 20.16.0 ? Which package manager do you want to use? npm ? Do you want to run "npm run build" before starting your server? No ? What command do you want to use to start the app? ["npm", "run", "dev"] ? What port does your server listen on? 5173
Utaona faili tatu za ziada kwenye saraka yako, ambazo ni .dockerignore
, compose.yaml
na DockerFile
Dockerfil
: Dockerfile ni hati ya maandishi ambayo ina maagizo yote ambayo mtumiaji anaweza kupiga simu kwenye mstari wa amri ili kukusanya picha.compose.yaml
: Faili ya Tunga, au faili ya compose.yaml
inafuata sheria zilizotolewa na Maelezo ya Kutunga jinsi ya kufafanua programu-tumizi za kontena nyingi ..dockerignore
: Faili hii haijumuishi faili na saraka kutoka kwa muktadha wa muundo. Ndani ya Dockerfile
, futa faili na ongeza yafuatayo:
# syntax=docker/dockerfile:1 ARG NODE_VERSION=20.16.0 FROM node:${NODE_VERSION}-alpine # Use development node environment by default. ENV NODE_ENV development WORKDIR /app # Copy package.json and package-lock.json to the working directory COPY package.json package-lock.json ./ # Install dependencies RUN npm install # Copy the rest of the source files into the image COPY . . # Change ownership of the /app directory to the node user RUN chown -R node:node /app # Switch to the node user USER node # Ensure node_modules/.bin is in the PATH ENV PATH /app/node_modules/.bin:$PATH # Expose the port that the application listens on EXPOSE 5173 # Run the application CMD ["npm", "run", "dev"]
Jenga picha ya chombo chako kwa kutumia hii:
docker build -t <your-image-name> .
Ili kuona picha ya kontena lako, nenda kwenye eneo-kazi lako, bofya Images
, kama inavyoonyeshwa hapa chini
au unaweza kutumia upesi wa amri,
docker images
kuona picha ya chombo chako kwenye terminal yako
Endesha picha:
docker run -p 5173:5173 <your-image-name>
Unapaswa kuona pato kama hili:
> [email protected] dev > vite VITE v5.4.2 ready in 222 ms ➜ Local: http://localhost:5173/ ➜ Network: http://172.17.0.2:5173/
Jisajili au Ingia kwenye Docker Hub.
Chagua kitufe cha Unda Hifadhi .
Taja hazina yako kwa jina sawa la picha ya chombo. Hakikisha Mwonekano ni wa Umma .
Chagua Unda .
Ingia kwa Docker Hub kwa kutumia mstari wa amri
docker login -u <YOUR USERNAME>
Weka Nenosiri lako
Nenosiri lako halitaonekana unapoandika
Tumia amri docker tag
kuipa picha getting-started
jina jipya. Badilisha YOUR-USER-NAME
na ID yako ya Docker:
Unaweza kukutana na hii
denied: requested access to the resource is denied
wakati wa kusukuma.Ili kurekebisha hii,
- ingia upya kwa kutumia
docker login
, bonyeza enter.- Baada ya hapo, utaelekezwa kwa kivinjari chako,
- nakili terminal yako ya OTP na uingize,
- bonyeza THIBITISHA
- rudisha picha
Utaona pato kama:
Hii inaonyesha picha yako imeundwa na kusukumwa kwenye sajili. Timu yako sasa inaweza kuvuta picha hii na kuendesha programu kwenye mashine yao ya karibu.
Unaweza kuangalia kwa kutafuta picha ya chombo chako kwenye upau wa kutafutia kwenye eneo-kazi lako la kizimbani au kitovu cha kizimbani .
Mgogoro wa bandari :
Hitilafu : ikiwa mlango ulikuwa tayari unatumika.
Suluhisho : Tambua mchakato kwa kutumia bandari na kuikomesha kwa kutumia amri zifuatazo:
# Find the process using port 8000 lsof -i :8000 # Kill the process (replace <PID> with the actual process ID found from the previous command) kill -9 <PID>
Vinginevyo, unaweza kuendesha chombo cha Docker kwenye bandari tofauti:
docker run -p 8001:8000 <your-image-name>
Sasisha Programu
Chochote unachosasisha programu yako kwa mfano unabadilisha sintaksia au utendaji kazi,
Acha desktop yako ya docker, bonyeza Containers
Acha bandari na ubofye kufuta
Jenga tena Programu kwa kutumia amri docker build
docker build -t <your-image-name> .
Rudia programu
docker run -p 5173:5173 <your-image-name>
Kwa kufuata mwongozo huu, unaweza kufunga programu yako na vitegemezi vyake kwa urahisi kwenye kontena, kuishiriki na timu yako, na kuiendesha kwa urahisi kwenye mashine yoyote. Hii sio tu huongeza ushirikiano lakini pia hupunguza masuala yanayohusiana na usanidi wa mazingira na uoanifu.