Edukira joan

Docker (softwarea)

Wikipedia, Entziklopedia askea
 Docker (softwarea)
Jatorria
Sortzailea(k)Solomon Hykes (en) Itzuli
Sorrera-urtea2013
Argitaratze-data2013
Azken bertsioa29.2.0
Aurkezpen data2013ko martxoaren 15a
Ezaugarriak
Euskarriax86-64, ARM arkitektura eta IBM S/390 (en) Itzuli
Programazio-lengoaiaGo
Media motaapplication/vnd.docker.distribution.manifest.v1+json, application/vnd.docker.distribution.manifest.v2+json, application/vnd.docker.distribution.manifest.list.v2+json, application/vnd.docker.container.image.v1+json, application/vnd.docker.image.rootfs.diff.tar.gzip, application/vnd.docker.image.rootfs.foreign.diff.tar.gzip eta application/vnd.docker.plugin.v1+json
Irakur dezakeDockerfile (en) Itzuli
Sistema eragileaLinux, Microsoft Windows, MacOS X eta UNIX-moduko
Idatz dezakeDockerfile (en) Itzuli
Egile-eskubideakcopyrightduna
Lizentzializentzia jabedun eta Apache Lizentzia 2.0.
Ekoizpena
GaratzaileaDocker, Inc. (en) Itzuli
MaskotaMoby Dock (en) Itzuli

docker.com
Facebook: docker.run Twitter: Docker Youtube: UC76AVf2JkrwjxNKMuPpscHQ GitHub: docker Edit the value on Wikidata
Iturri-kodeahttps://github.com/moby/moby
Dockerrek Linuxen kernelaren birtualizazio-gaitasunetara sartzeko interfaze desberdinak erabil ditzake.

Docker kode irekiko plataforma bat da, aplikazioak kontenedore[1] izeneko ingurune isolatuetan paketatzeko, banatzeko eta exekutatzeko diseinatua. Teknologia honek sistema eragilearen kernelaren gaitasunak erabiltzen ditu —batez ere cgroups, namespaces eta UnionFS antzeko fitxategi-sistemak—, aplikazioak modu arin, eramangarri eta koherentean exekutatu ahal izateko, makina birtual oso bat martxan jarri beharrik gabe. Dockerren bidez, garatzaileek eta sistemek ingurune koherenteak sor ditzakete, aplikazio baten funtzionamendua sistemaren konfigurazioaren, mendekotasunen edo azpiegituraren aldaketen aurrean ahalik eta egonkorrena izan dadin.[2][3][4]

Dockerren logoa

Funtzionamendua

[aldatu | aldatu iturburu kodea]

Dockerren kontenedoreak aplikazio baten exekuzio-ingurune logiko eta isolatua dira. Kontenedore bakoitzak bere prozesu-espazioa, sare-konfigurazioa eta fitxategi-sistema ditu, eta, aldi berean, sistema eragilearen kernel bera partekatzen du gainerako kontenedoreekin.[5] Horrela, kontenedoreak:

  • oso azkar abiatzen dira,
  • baliabide gutxiago erabiltzen dute,
  • eta portaera homogeneoa mantentzen dute plataforma desberdinetan.

Dockerrek kernelaren birtualizazio-ezaugarrietara sartzeko bi mekanismo nagusi erabiltzen ditu:

  1. runC / libcontainer[6][7] - Dockerren exekuzio-motor nagusia, kernelarekin zuzenean elkarreragiten duena.
  2. LXC edo systemd-nspawn bezalako[8] abstrakzio-geruzak — hainbat sistemak erabiltzen dituzten ingurune isolatuak sortzeko aukera osagarriak.

Kontenedoreak Docker irudiak izeneko ereduen arabera sortzen dira; irudi horiek aplikazioaren kodea, konfigurazioa eta behar diren mendekotasun guztiak biltzen dituzte.

Dockerren arrakasta hainbat abantailetan oinarritzen da.

Arintasuna: kontenedoreak ez dira makina birtualak bezala; ez dute sistema eragile osoa exekutatzen, eta horrek baliabide gutxiago kontsumitzea eta abioko denbora laburragoak ekartzen ditu.

Eramangarritasuna: aplikazio bat kontenedore batean exekutatuta edozein sistema bateragarritan berdin portatuko da, izan Linux, Windows edo hodeiko plataforma bat.

Eskalagarritasuna: kontenedoreak azkar sortu, kopiatu eta banatu daitezke, mikrozerbitzu-arkitekturetan eta sistema banatuetan oso erabilgarriak bihurtuz.

Isolamendua: aplikazio bakoitzak bere ingurune logikoa du, eta horrek segurtasuna, errepikakortasuna eta gatazka gutxiago bermatzen ditu.[9]

Ekosistema eta Integrazioa

[aldatu | aldatu iturburu kodea]

Dockerrek ekosistema oso zabal eta heldua du, eta tresna ugarirekin integra daiteke:

  • Hodei-plataformak: AWS, Google Cloud, Azure, OpenStack
  • Konfigurazio-kudeaketa: Ansible, Puppet, Chef
  • CI/CD sistemak: Jenkins, GitLab CI, GitHub Actions
  • Orkestrazio-plataformak: Kubernetes, Docker Swarm

Tresna horiek kontenedoreen automatizazioa, monitorizazioa, eskalatzea eta orkestrazioa errazten dituzte.[10][11]

Docker 2013an kaleratu zen, hasiera batean dotCloud enpresaren barne-proiektu modura. Proiektuak arrakasta berehalakoa izan zuen, eta laster bihurtu zen garatzaileentzat eta sistema-ingeniarientzat erreferentziazko estandar. Denborarekin, enpresa handiek —Red Hat, IBM, Microsoft, Google eta beste askok— ekarpen garrantzitsuak egin dituzte, eta komunitateak milaka plugin, irudi eta tresna garatu ditu. Docker Inc. enpresak teknologia hori komertzialki bultzatu zuen eta, 2015ean, runC eta Open Container Initiative (OCI)[12] sortu zituen, kontenedoreen estandar irekia ezartzeko.[13][14]

Dockerren arkitekturak honako osagai hauek ditu:

  • Docker Engine — zerbitzaria (daemon-a) eta CLI bezeroa.
  • Docker Images — aplikazioaren egoera definitzen duten irudi geruzatuak.
  • Docker Containers — irudietan oinarritutako exekuzio-inguruneak.
  • Dockerfile — irudi automatizatuak sortzeko konfigurazio-fitxategia.
  • Registries — irudiak gordetzeko biltegiak (Docker Hub, GitHub Container Registry…).

Kontenedoreek kernel bera partekatzen dutenez, isolamendu-maila ez da makina birtualetan bezain sakona, baina honako mekanismoek segurtasun fidagarria eskaintzen dute:

  • cgroups — baliabideen muga eta kudeaketa
  • namespaces — isolamendu logikoa
  • seccomp, SELinux, AppArmor — pribilegio-kontrola eta baimen-mugak

Segurtasun-arazo gehienak konfigurazio okerretatik datoz, ez teknologia beretik.[15]

Lizentzia eta erabilera baldintzak

[aldatu | aldatu iturburu kodea]

Docker Engine Apache License 2.0 lizentziapean banatzen da, eta Docker proiektuaren zenbait osagai GPL lizentziaren arabera. Docker Desktop, berriz, ez da doakoa tamaina jakin batetik gorako enpresentzat. Dockerfile fitxategien lizentziak fitxategiari eragiten dio, ez bertatik sortzen den kontenedore-irudiari.[16]

Erreferentziak

[aldatu | aldatu iturburu kodea]
  1. (Gaztelaniaz) «¿Para que sirve Docker y como funcionan sus contenedores? | Blog de Arsys» Arsys (kontsulta data: 2025-12-27).
  2. (Ingelesez) Noyes, Katherine. «Docker: A 'Shipping Container' for Linux Code» Linux.com | The source for Linux Information (kontsulta data: 2025-12-27).
  3. (Ingelesez) «Docker: Automated and Consistent Software Deployments» InfoQ (kontsulta data: 2025-12-27).
  4. «Kernel Requirements - Docker Documentation» docker.readthedocs.org (kontsulta data: 2025-12-27).
  5. (Ingelesez) «Docker libcontainer unifies Linux container powers» ZDNET (kontsulta data: 2025-12-27).
  6. Scott, Sean. (2023). «Introducing Docker and Oracle» Oracle on Docker (Apress): 3–18. ISBN 978-1-4842-9032-3. (kontsulta data: 2025-12-27).
  7. (Ingelesez) docker-archive. «libcontainer/README.md at master · docker-archive/libcontainer» GitHub (kontsulta data: 2025-12-27).
  8. (Ingelesez) «Docker drops LXC as default execution environment» InfoQ (kontsulta data: 2025-12-27).
  9. «Iron.io Blog: How Docker Helped Us Achieve the (Near) Impossible» blog.iron.io (kontsulta data: 2025-12-27).
  10. «Contenedores en Compute Engine» Google Cloud Documentation (kontsulta data: 2025-12-27).
  11. (Ingelesez) «Bluemix Launches IBM Containers Beta Based on Docker» Bluemix 2014-12-04 (kontsulta data: 2025-12-27).
  12. (Ingelesez) «Docker libcontainer unifies Linux container powers» ZDNET (kontsulta data: 2025-12-27).
  13. «Ben Golub, Who Sold Gluster to Red Hat, Now Running dotCloud | Maureen O'Gara» maureenogara.sys-con.com (kontsulta data: 2025-12-27).
  14. (Ingelesez) Darrow, Barb. (2013-07-23). «PaaS pioneer dotCloud gets new CEO in industry vet Ben Golub» Gigaom (kontsulta data: 2025-12-27).
  15. (Ingelesez) Walsh, Dan. (2014-09-15). «Yet Another Reason Containers Don't Contain: Kernel Keyrings» www.projectatomic.io (kontsulta data: 2025-12-27).
  16. (Ingelesez) «Get Docker» Docker Documentation 2025-05-28 (kontsulta data: 2025-12-27).

Kanpo estekak

[aldatu | aldatu iturburu kodea]