Docker

Työkalu, joka paketoi sovelluksen ja kaiken sen tarvitseman konttiin, joka toimii samalla tavalla millä tahansa koneella.

Docker · Työkalut

Docker on avoin alusta sovellusten kehittämiseen, siirtämiseen ja ajamiseen konteissa. Kontti on eristetty ympäristö, jossa on sovellus ja kaikki, mitä se tarvitsee: oikea Node.js- tai Python-versio, kirjastot ja asetukset. Koska kontti sisältää kaiken, sovellus toimii samoin kehittäjän koneella, testipalvelimella ja tuotannossa. Klassinen ongelma "toimii minun koneellani" jää pois.

Dockerin peruskäsitteet ovat image ja kontti. Image on vain luku -muotoinen pohja, jossa on ohjeet kontin luomiseen. Kontti on imagesta käynnistetty, ajossa oleva kopio. Image rakennetaan Dockerfile-tiedostosta, johon kirjoitetaan vaiheittain, mistä pohjasta lähdetään, mitä asennetaan ja millä komennolla sovellus käynnistyy. Valmiit imaget tallennetaan rekisteriin, ja Docker Hub on julkinen rekisteri, josta Docker hakee imaget oletuksena. Docker Compose on työkalu, jolla käynnistetään usean kontin sovellus, esimerkiksi web-sovellus ja tietokanta yhdessä.

Vibekoodauksessa Dockeria tarvitaan yleensä vasta, kun sovellus julkaistaan omalle palvelimelle tai siihen kuuluu useita palveluita. Vercelin ja Netlifyn kaltaiset palvelut hoitavat ajoympäristön puolestasi, joten niissä Dockeria ei tarvita. Tekoäly kirjoittaa Dockerfilen hyvin, kun kerrot kielen, kehyksen ja käynnistyskomennon. Tarkista, ettei .env-tiedosto tai muita salaisuuksia kopioidu imageen: lisää ne .dockerignore-tiedostoon.

Usein kysyttyä

Mikä on Docker?

Docker on työkalu, jolla sovellus paketoidaan konttiin yhdessä kaiken sen tarvitseman kanssa. Kontti toimii samalla tavalla kehittäjän koneella ja palvelimella, joten ympäristöjen erot eivät riko sovellusta.

Mitä eroa on Docker-imagella ja kontilla?

Image on vain luku -muotoinen pohja, jossa on ohjeet kontin luomiseen. Kontti on imagesta käynnistetty, ajossa oleva kopio. Samasta imagesta voi käynnistää monta konttia.

Tarvitsenko Dockeria vibekoodaukseen?

Et välttämättä. Jos julkaiset sovelluksen Verceliin tai muuhun palveluun, joka hoitaa ajoympäristön, Dockeria ei tarvita. Se on hyödyllinen, kun julkaiset omalle palvelimelle tai sovellukseen kuuluu useita palveluita, kuten erillinen tietokanta.

Esimerkkejä

FROM node:20 aloittaa Dockerfilen valmiista Node.js-imagesta

docker build -t sovellus . rakentaa imagen nykyisen kansion Dockerfilestä

docker run -p 3000:3000 sovellus käynnistää kontin ja avaa portin 3000

docker-compose.yml käynnistää web-sovelluksen ja PostgreSQL-tietokannan yhdellä komennolla

.dockerignore estää node_modules-kansion ja .env-tiedoston päätymisen imageen

"Kirjoita tälle Next.js-sovellukselle Dockerfile, joka tekee mahdollisimman pienen tuotantoimagen"