arrow_backYn ôl i'r nodiadau maes
DEVOPS Cyhoeddwyd 9 Aug 2026

Beth Yw Docker a Pham Ddylai Datblygwyr ei Ddysgu?

Dadansoddiad ymarferol o Docker ar gyfer datblygwyr: cynwysyddion yn erbyn VMs, gorchmynion craidd, Dockerfiles, a sut i ddechrau ei ddefnyddio mewn projectau go iawn.

Mae Docker yn ymddangos yn aml mewn cyhoeddiadau swyddi ac arweiniad gosod, ac os na chyffryddwyd chi erioed â chynwysyddion gall deimlo fel wal y mae'n rhaid i chi ei dringo cyn y cewch ysgrifennu cod go iawn. Nid yw mor gymhleth â hynny unwaith y byddwch wedi mynd heibio'r eirfa.

Beth yw cynwysydd mewn gwirionedd

Mae cynwysydd yn pacio'ch cymhwysiad gyda phopeth sydd ei angen arno i redeg: y cod, amser gogwydd, llyfrgelloedd system, a ffeiliau ffurfweddu. Nid yw'n beiriant rhithwir. Mae VM yn rhithwireddu system weithredu gyfan, yr endid canol cynhwysol, sy'n golygu y gall cychwyn un gymryd munud ac yfed ychydig gigabytiau o RAM. Mae cynwysydd yn rhannu endid canol y peiriant gwesteiwr ac yn ynysu'r broses yn unig, felly mae'n cychwyn mewn llai na eiliad ac fel arfer yn defnyddio degau o filiwn-drosedd yn lle gigabytiau.

Y gwahaniaeth hwnnw yw pam y cymerodd Docker drosodd datblygiad lleol a phiblinau CI mor gyflym. Gallwch gychwyn cronfa ddata Postgres, storfa Redis, a'ch gweinydd cymhwysiad ar un laptop heb osod yr un ohonynt yn uniongyrchol ar eich OS.

Y darnau craidd y mae angen i chi eu gwybod

Mae pedwar term yn cwmpasu'r rhan fwyaf o'r hyn y byddwch yn ei ddelio ag ef ddydd i ddydd:

  • Image: templed darllen-yn-unig a adeiladwyd o Dockerfile. Meddyliwch amdano fel llungopiaid o system ffeiliau ynghyd â metadata am sut i'w redeg.
  • Container: enghraifft redeg o ddelwedd. Gallwch ddechrau, stopio, a dileu cynwysyddion heb gyffwrdd â'r ddelwedd y daethant ohoni.
  • Dockerfile: ffeil testun gydag cyfarwyddiadau ar gyfer adeiladu delwedd, llinell wrth linell.
  • Registry: lle mae delweddau'n cael eu storio a'u tynnu ohonynt, gan amlaf Docker Hub.

Mae Dockerfile lleiaf ar gyfer cymhwysiad Node.js yn edrych fel hyn:

FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]

Adeiladwch ef gyda docker build -t my-app . a'i redeg gyda docker run -p 3000:3000 my-app. Mae'r -p faner yn mapio porth ar eich peiriant i borth y tu mewn i'r cynwysydd, sef sut y gallwch gyrraedd yr cymhwysiad mewn gwirionedd o'ch porwr.

Gorchmynion y byddwch yn eu defnyddio'n gyson

Mae nifer o orchmynion yn cwmpasu'r rhan fwyaf o waith dyddiol:

  • docker ps — rhestru cynwysyddion sy'n rhedeg
  • docker ps -a — rhestru pob cynwysydd, gan gynnwys rhai wedi'u stopio
  • docker images — rhestru delweddau ar eich peiriant
  • docker logs <container> — gwiriwch allbwn o gynwysydd sy'n rhedeg neu wedi chwalu
  • docker exec -it <container> sh — agor shell tu mewn i gynwysydd sy'n rhedeg
  • docker rm / docker rmi — glanhau cynwysyddion a delweddau nad oes arnoch eu hangen mwyach

Mae'r pâr olaf hwnnw'n bwysicach nag y mae pobl yn disgwyl. Bydd Docker yn gadael i le disg ddiflannu'n hapus i hen ddelweddau a chynwysyddion wedi'u stopio. Yn rhedeg docker system prune yn achlysurol yn adennill swm syndod o le.

Pam mae docker-compose yn newid y gweithrediad

Mae'r rhan fwyaf o brojectau go iawn angen mwy nag un cynwysydd: gweinydd cymhwysiad, cronfa ddata, efallai storfa. Ysgrifennu docker run gorchmynion ar gyfer pob un yn mynd yn hen yn gyflym. Mae docker-compose.yml yn gadael i chi ddiffinio'r pentwr cyfan mewn un ffeil:

services:
  web:
    build: .
    ports:
      - "3000:3000"
    depends_on:
      - db
  db:
    image: postgres:16
    environment:
      POSTGRES_PASSWORD: devpassword
    volumes:
      - db_data:/var/lib/postgresql/data

volumes:
  db_data:

Rhedeg docker compose up a dechrau'r ddau wasanaeth gyda'i gilydd, wedi'u rhwydweithio fel y gall web gyrraedd db trwy enw gwasanaeth. Dyma'r gosodiad y byddwch yn ei weld mewn bron pob README repo cod agored, ac mae deall hyn yn golygu y gallwch glonio project a'i gael yn rhedeg mewn munudau yn lle osod Postgres, Redis, a beth bynnag arall sydd angen ar yr cymhwysiad â llaw.

Lle mae pobl yn cael eu cuddio'n gynnar

Mae cyfeintiau yn drysu bron pawb i ddechrau. Heb gyfeint, mae unrhyw beth a ysgrifennir tu mewn i gynwysydd yn diflannu pan gaiff y cynwysydd ei dynnu, sef problem ar gyfer cronfeydd data. Mae'r volumes adran yn y ffeil gyfansoddi uchod yn mapio cyfeint a enwyd i lwybr tu mewn i'r cynwysydd fel bod data'n goroesi ailgychwynniadau.

Camgymeriad arall cyfffredin yw copïo node_modules neu .git i'r ddelwedd oherwydd nid oes ffeil .dockerignore. Ychwanegwch un yn union fel .gitignore:

node_modules
.git
.env

Mae hynny'n cadw adeiladau'n gyflymach a delweddau'n llai, sy'n bwysig unwaith y byddwch yn gwthio delweddau i gofrestrfa neu'n tdeploy i Kubernetes.

Lle i fynd ar ôl y pethau sylfaenol

Unwaith y bydd adeiladu a rhedeg cynwysyddion yn teimlo'n normal, y sgiliau defnyddiol nesaf yw adeiladau aml-gam ar gyfer delweddau cynhyrchu llai, deall moddau rhwydweithu Docker, a darllen allbwn docker inspect pan nad yw rhywbeth yn cysylltu'n iawn. Nid yw dim ohono'n anodd, mae'n dal yn anghyfarwydd y tro cyntaf drwyddo.

Am ragor am gynwysydio cymhwysiadau go iawn a'u cysylltu â phiblinau trefniant cwmwl, gwiriwch segmentau DevOps a Cloud ar Korra Studio.

Ysgrifennwyd yr erthygl hon gyda chymorth AI, a'i hadolygu a'i chyhoeddi gan Michal Pilch (CISSP), Korra Studio.

Yn barod i fynd ymhellach?

Dyma un nodyn o'r gronfa wybodaeth Korra Studio — mae'r platfform yn paru pob pwnc ag 1-i-1 mentora.

Dechrau am ddimarrow_forward