Oppaat

Mikä on Docker? Kontit selitettynä ei-kehittäjille

Docker on työkalu, joka pakkaa sovelluksen yhdessä kaikkien sen ajamiseen tarvittavien osien kanssa – oikean kieliversion, kirjastot, järjestelmätyökalut ja asetukset – standardiyksiköksi, jota kutsutaan kontiksi (container). Kontti toimii samalla tavalla kehittäjän kannettavalla, testipalvelimella tai pilvipalvelussa, mikä päättää klassisen ongelman ”mutta se toimi minun koneellani”. Kontin rakentamisen resepti on lyhyt tekstitiedosto nimeltä Dockerfile.

Miksi Docker on tärkeä, kun rakennat tekoälyllä

Jos sovelluksellasi on taustajärjestelmä – Python-, Node-, C#- tai Java-API – sen täytyy toimia jossakin, missä on täsmälleen oikeat ohjelmistot asennettuina. Docker on yleisin tapa tehdä siitä toistettavaa.

  • Taustajärjestelmien julkaiseminen. Monet palvelut, mukaan lukien Mythex, julkaisevat taustajärjestelmät rakentamalla kontin Dockerfile-tiedostosta. Mythexissä pyytämällä ”C# Web API” tai ”Java-taustajärjestelmä” saat sovelluksen ja Dockerfile-tiedoston, ja Julkaise rakentaa kuvan ja julkaisee sen (API-taustajärjestelmät).
  • Alustalta poistuminen. Jos vie tekoälyllä rakennetun sovelluksen ulos, Dockerfile tekee sen ajamisesta toisella palvelimella paljon helpompaa. Katso kuinka viedä tekoälyllä rakennettu sovellus ulos ja ajaa se itse.
  • Yhteistyö kehittäjien kanssa. Projektiisi liittyvä kehittäjä voi käynnistää koko sovelluksen yhdellä tai kahdella komennolla sen sijaan, että käyttäisi päivän asennuksiin.

Arkinen vertauskuva: merikontit

Ennen standardoituja merikontteja rahti lastattiin kappale kerrallaan – säkit, tynnyrit, lavat – ja jokainen satama käsitteli sitä eri tavalla. Standardi teräskontti muutti tämän: pakkaat sen kerran, ja mikä tahansa laiva, nosturi, juna tai kuorma-auto voi siirtää sen välittämättä sisällöstä.

Docker tekee saman ohjelmistoille:

  • Dockerfile on pakkauslista ja ohjeet.
  • Kuva on suljettu, pakattu kontti.
  • Käynnissä oleva kontti on tuo laatikko laivassa töissä – tässä tapauksessa palvelimella.
  • Docker Engine on nosturi ja laiva: palvelimella oleva ohjelmisto, joka osaa ajaa minkä tahansa kontin.

Miten Docker toimii

OsaMitä se on
DockerfileTekstitiedosto, jossa on vaiheittaiset ohjeet kuvan rakentamiseen.
Kuva (image)Vain luettava paketti: käyttöjärjestelmän perusteet, suoritusympäristö, kirjastot ja koodisi.
Kontti (container)Kuvan käynnissä oleva instanssi, eristettynä muista saman koneen sovelluksista.
Rekisteri (registry)Paikka, jossa kuvia säilytetään ja jaetaan, kuten Docker Hub tai pilvipalveluntarjoajan rekisteri.
Docker EngineTaustapalvelu, joka rakentaa kuvat ja ajaa kontit. Ilmainen ja avoimen lähdekoodin.
Docker DesktopSovellus Macille, Windowsille ja Linuxille, joka yhdistää moottorin graafiseen käyttöliittymään.

Kontit vs virtuaalikoneet: virtuaalikone esittää olevansa kokonaan erillinen tietokone omalla käyttöjärjestelmällään, joten se on raskas ja hidas käynnistyä. Kontti jakaa isännän käyttöjärjestelmän ytimen ja eristää vain sovelluksen ja sen tiedostot, joten se käynnistyy tyypillisesti sekunneissa ja käyttää paljon vähemmän muistia. Monta konttia voi ajaa rinnakkain yhdellä palvelimella.

Esimerkki käytännössä: pieni Python-API

Oletetaan, että tekoälyrakentajasi loi varaussovellukselle Python FastAPI -taustajärjestelmän. Dockerfile voisi näyttää tältä:

FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

Rivi riviltä:

RiviMitä se tekee
FROM python:3.12-slimAloitetaan virallisesta kuvasta, jossa Python 3.12 on jo asennettu.
WORKDIR /appTyöskennellään kontin kansiossa /app.
COPY requirements.txt . ja RUN pip install ...Kopioidaan kirjastolista ja asennetaan kirjastot.
COPY . .Kopioidaan sovelluksen oma koodi.
EXPOSE 8000Merkitään, että sovellus kuuntelee porttia 8000.
CMD [...]Komento, joka käynnistää web-palvelimen kontin ajon alkaessa.

Selkokielellä: ”Aloita Python 3.12:lla. Asenna requirements.txt-tiedostossa listatut kirjastot. Kopioi koodi sisään. Käynnistä web-palvelin portissa 8000.”

Kehittäjä (tai julkaisualusta) ajaa sitten kaksi komentoa:

docker build -t booking-api .
docker run -p 8000:8000 booking-api

Ensimmäinen rakentaa kuvan ja antaa sille nimen booking-api. Toinen käynnistää kontin ja yhdistää koneen portin 8000 kontin sisällä olevaan porttiin 8000. API on nyt käynnissä – samalla tavalla kuin se tulee olemaan millä tahansa palvelimella, jossa on Docker.

Huomaa, mitä kuvassa ei ole: salasanoja ja API-avaimia. Ne annetaan konttia käynnistettäessä ympäristömuuttujina, jotta sama kuva voi toimia testauksessa ja tuotannossa eri asetuksilla.

Keskeiset termit

TermiMerkitys
KonttiEristetty, käynnissä oleva paketti sovelluksesta ja sen riippuvuuksista.
KuvaMalli, josta kontti käynnistetään.
Peruskuva (base image)Lähtökohta Dockerfile-tiedoston FROM-rivillä, kuten python:3.12-slim tai node:22.
Kerros (layer)Jokainen Dockerfile-vaihe lisää välimuistiin tallennetun kerroksen, mikä nopeuttaa uudelleenrakennuksia.
Porttiyhteys (port mapping)Isäntäkoneen portin yhdistäminen kontin sisäiseen porttiin.
Volyymi (volume)Tallennustila, joka säilyy, kun kontti vaihdetaan. Kontit itsessään ovat kertakäyttöisiä.
Docker ComposeTiedosto, joka kuvaa useita yhdessä ajettavia konttia, kuten API:n ja tietokannan.
KubernetesJärjestelmä monien konttien ajamiseen monilla palvelimilla. Useimmat pienet sovellukset eivät tarvitse sitä.

Yleisiä väärinkäsityksiä

  • ”Docker on virtuaalikone.” Se on kevyempi: kontit jakavat isännän ytimen.
  • ”Kontin sisään tallennettu data on turvassa.” Kontit on tarkoitettu hävitettäviksi ja korvattaviksi. Kaikki, minkä täytyy säilyä – käyttäjädata, lataukset – kuuluu tietokantaan, tiedostotallennukseen tai volyymiin.
  • ”Salaisuuksien laittaminen Dockerfile-tiedostoon on ok, koska se on yksityinen.” Kuvia jaetaan ja työnnetään rekistereihin. Anna salaisuudet sen sijaan ajonaikaisesti.
  • ”Docker tekee sovelluksesta turvallisen.” Eristys auttaa, mutta vanhentunutta ohjelmistoa heikoilla asetuksilla ajava kontti on yhä haavoittuvainen.
  • ”Jokainen sovellus tarvitsee Dockerin.” Staattinen sivusto tai yksinkertainen frontend julkaistaan yleensä tavallisina tiedostoina ilman konttia lainkaan.
  • ”Docker Desktop on kaikille ilmainen.” Moottori on ilmainen; Docker Desktop vaatii suuremmilta yrityksiltä maksullisen tilauksen Dockerin ehtojen mukaan.

Mitä pyytää tekoälyrakentajaltasi

  • ”Tarvitseeko tämä sovellus Dockerfile-tiedoston? Jos tarvitsee, selitä jokainen rivi selkokielellä.”
  • ”Käytä pientä, virallista peruskuvaa ja lukitse kielen versio.”
  • ”Pidä salaisuudet poissa kuvasta. Lue ne ympäristömuuttujista ajonaikaisesti.”
  • ”Varmista, että lataukset ja data tallennetaan tietokantaan tai tiedostotallennukseen, eikä kontin sisään.”
  • ”Lisää Docker Compose -tiedosto, jotta kehittäjä voi ajaa frontendin, API:n ja tietokannan paikallisesti yhdellä komennolla.”
  • ”Lisää terveystarkistuksen päätepiste, jotta isäntäpalvelu voi kertoa, onko API käynnissä.”

Docker Mythexissä

Sinun ei tarvitse asentaa tai ajaa Dockeria käyttääksesi Mythexiä. Projektisi toimii yksityisessä pilvihiekkalaatikossa, ja kun pyydät taustajärjestelmää, joka tarvitsee kontin – esimerkiksi C#, Java tai oma Node- tai Python-palvelu – Mythex kirjoittaa sovelluksen ja Dockerfile-tiedoston, esikatselee sen hiekkalaatikossa ja julkaisee sen, kun julkaiset, ilman mitään hostauksen pystytystä (kuinka teknologia valitaan). Pro-tilillä voit viedä projektin ulos tai synkronoida sen GitHubiin ja ottaa Dockerfile-tiedoston mukaasi. Siitä, miten taustajärjestelmät ja frontendit sopivat yhteen, katso frontend vs backend.

Kysymykset

Mikä on Docker yksinkertaisesti selitettynä?

Docker on työkalu, joka pakkaa sovelluksen yhdessä kaikkien sen ajamiseen tarvittavien osien kanssa – kielen suoritusympäristön, kirjastot ja asetukset – yhdeksi standardiyksiköksi, jota kutsutaan kontiksi. Kontti toimii samalla tavalla kannettavalla, testipalvelimella tai pilvipalvelussa.

Mikä on ero Docker-kuvan ja kontin välillä?

Kuva on paketoitu, vain luettava malli: sovellus ja sen riippuvuudet, rakennettu Dockerfile-tiedostosta. Kontti on tästä kuvasta käynnissä oleva kopio. Yhdestä kuvasta voi käynnistää monta konttia.

Onko Docker virtuaalikone?

Ei. Virtuaalikone jäljittelee koko tietokonetta omalla käyttöjärjestelmällään. Kontit jakavat isäntäkoneen käyttöjärjestelmän ytimen ja eristävät vain sovelluksen, joten ne käynnistyvät nopeammin ja käyttävät vähemmän muistia.

Onko Docker ilmainen?

Docker Engine, konttien ajamisen ydin, on ilmainen ja avoimen lähdekoodin ohjelmisto. Dockerin ehtojen mukaan syyskuusta 2026 lähtien Docker Desktop on ilmainen ei-kaupallisille avoimen lähdekoodin projekteille ja yrityksille, joissa on alle 250 työntekijää ja alle 10 miljoonan dollarin vuosituotto; suuremmat yritykset tarvitsevat maksullisen tilauksen.

Pitääkö minun oppia Docker, jotta voin rakentaa sovelluksen tekoälyllä?

Yleensä ei. Monet tekoälyrakentajat hoitavat kontit puolestasi. On kuitenkin hyödyllistä tietää, mikä Dockerfile on, jotta ymmärrät, miten taustajärjestelmä on paketoitu, ja jotta voit ajaa tai julkaista sovelluksen muualla, jos vie sen ulos.

Mythex · Pricing · Rakenna mitä tahansa tekoälyllä · Verkkosivu- ja sovellusmallipohjat · Mythex vertailussa · Tekoälysovellusten rakentamisen sanasto · Ilmaiset työkalut tekoälysovellusten rakentamiseen · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)