Dockerin asennus ja ensimmäinen kontti
Käymme läpi Docker Desktopin ja Docker Enginen asennuksen, ensimmäisen kontin ajamisen, Dockerfilen kirjoittamisen ja usean palvelun ympäristön pystyttämisen docker composella.

Docker-asennusta varten lataa Windowsissa ja macOS:ssä Docker Desktop -asennusohjelma osoitteesta docker.com; Windowsissa WSL 2:n on oltava ensin käytössä. Linuxissa asennetaan Docker Engine viralliselta asennuslähteeltä. Asennuksen jälkeen aja komento docker run hello-world; jos näet tervetuloviestin, Docker toimii. Usean palvelun projekteissa käytetään docker composea.
Mitä Docker on ja mihin sitä käytetään?
Docker on alusta, joka paketoi sovelluksen kaikkine tarvitsemineen ja ajaa sen eristetyissä ympäristöissä, joita kutsutaan konteiksi (container). Sovellus, kirjastot ja asetukset kootaan yhteen imageen; tämä image käyttäytyy samalla tavalla missä tahansa se ajetaan.
Käytännössä tämä tarkoittaa, että “minun koneellani se toimi” -ongelma poistuu suurelta osin. Kehittäjän kannettava, testipalvelin ja tuotantopalvelin käyttävät samaa imagea. Uusi tiimin jäsen saa projektin pystyyn yhdellä komennolla tuntikausien asennuksen sijaan.
Kontit muistuttavat virtuaalikoneita mutta ovat paljon kevyempiä. Jokaisella ei ole omaa käyttöjärjestelmäänsä vaan ne jakavat isäntäkoneen ytimen; siksi ne käynnistyvät sekunneissa ja kuluttavat vähän resursseja.
| Käsite | Lyhyesti |
|---|---|
| Image | Sovelluksen vain luettava malli; tuotetaan Dockerfilestä |
| Kontti | Imagesta käynnistetty, käynnissä oleva esiintymä |
| Dockerfile | Tekstitiedosto, joka kuvaa, miten image rakennetaan |
| Volume | Pysyvä tietoalue, joka säilyy, vaikka kontti poistetaan |
| Docker Hub | Julkinen rekisteri, jossa valmiita imageja on tarjolla |
| Docker Compose | Työkalu, joka hallitsee useita kontteja yhdellä tiedostolla |
Vaatimukset ennen asennusta
Docker Desktop ajaa taustalla pientä virtuaaliympäristöä; siksi tietokoneesi virtualisointituen on oltava päällä. Useimmissa uusissa tietokoneissa se on oletuksena päällä; jos ei, sinun on otettava käyttöön Intel VT-x- tai AMD-V-vaihtoehto BIOS/UEFI-asetuksista.
Windowsissa Docker Desktop ajaa Linux-kontit WSL 2:n päällä. Jos WSL ei ole asennettu, asenna se ensin; vaiheet olemme käsitelleet oppaassamme WSL-asennus.
- Muisti: Jos useita kontteja ajetaan yhtä aikaa, vähintään 8 Gt RAM-muistia takaa sujuvan työskentelyn.
- Levytila: Imaget kertyvät ajan myötä; varaa vapaata tilaa muutama kymmenen Gt.
- Lisenssi: Docker Desktop on ilmainen henkilökohtaiseen käyttöön, koulutukseen ja tietyn kokoluokan alle jääville pienyrityksille; suuremmat organisaatiot tarvitsevat maksullisen tilauksen. Tarkista ajantasaiset ehdot osoitteesta docker.com.
wsl --install
# Käynnistä tietokone uudelleen asennuksen jälkeen ja tarkista sitten
wsl --statusDocker Desktop Windowsissa ja macOS:ssä
Docker Desktop tarjoaa Docker Enginen, komentorivityökalun, Docker Composen ja graafisen hallintapaneelin yhdessä paketissa. Lataa asennusohjelma viralliselta sivustolta ja asenna se oletusasetuksilla.
Varmista Windowsissa asennuksen aikana, että vaihtoehto Use WSL 2 instead of Hyper-V on valittuna. macOS:ssä valitse prosessoriisi sopiva versio: Apple Silicon (M-sarja) tai Intel. Käynnistä sovellus asennuksen jälkeen; Docker on valmis, kun valikkorivin tai tehtäväpalkin valaskuvake pysähtyy paikalleen.
winget install -e --id Docker.DockerDesktopDocker Enginen asennus Linuxissa
Linuxissa Docker toimii suoraan Docker Enginenä ilman Docker Desktopia; tämä on myös palvelimien vakiotapa. Luotettavin tapa on seurata virallisessa dokumentaatiossa kuvattua jakelukohtaista asennuslähteen käyttöönottoa. Kehityskoneille Dockerin virallinen apuskripti tekee saman yhdellä kerralla.
Kun olet lisännyt käyttäjäsi docker-ryhmään asennuksen jälkeen, sudoa ei tarvitse kirjoittaa jokaisen komennon eteen. Koska tämä ryhmä antaa rootin kaltaiset oikeudet, lisää siihen vain luotettavat käyttäjät.
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Käyttöön ilman sudoa
sudo usermod -aG docker $USER
newgrp docker
# Palvelun käynnistyminen käynnistyksen yhteydessä
sudo systemctl enable --now dockerAsennuksen varmistaminen
Käyttöjärjestelmästä riippumatta varmistuskomennot ovat samat. hello-world-image ladataan Docker Hubista, ajetaan, ja se tulostaa ruudulle selityksen ja päättyy. Jos näet tämän tulosteen, asiakas, moottori ja imagen latausketju toimivat moitteetta.
docker --version
docker compose version
docker run hello-worldEnsimmäisen kontin ajaminen
Jatketaan oikealla esimerkillä: käynnistetään kevyt verkkopalvelin nginx kontissa ja avataan se selaimessa. Lippu -d ajaa kontin taustalla ja -p 8080:80 yhdistää tietokoneesi portin 8080 kontin porttiin 80.
Kun olet ajanut komennon, avaa selaimessa osoite http://localhost:8080; sinun pitäisi nähdä nginxin tervetuloasivu. Alla olevat muut komennot auttavat seuraamaan konttia, menemään sen sisään ja siivoamaan sen.
docker run -d -p 8080:80 --name web nginx
# Käynnissä olevat containerit
docker ps
# Seuraa lokeja
docker logs web
# Avaa komentotulkki containerin sisällä
docker exec -it web sh
# Durdur ve sil
docker stop web
docker rm web
# Ladatut imaget
docker imagesOmien tiedostojen julkaiseminen
Kansion HTML-tiedostojen liittämiseen konttiin käytetään bind mountia. Alla oleva komento liittää nykyisen kansiosi nginxin julkaisukansioon vain luettavana; kun muokkaat tiedostoa ja päivität sivun, näet muutoksen heti.
docker run -d -p 8080:80 -v "$(pwd)":/usr/share/nginx/html:ro --name site nginxOman imagen rakentaminen
Jos haluat muuttaa Node.js-sovelluksen imageksi, lisää projektin juureen tiedosto nimeltä Dockerfile. Kopioimalla ensin package-tiedostot ja asentamalla riippuvuudet vältetään tämän kerroksen uudelleenrakentaminen koodin muuttuessa, ja koonti nopeutuu.
FROM node:lts-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
EXPOSE 3000
CMD ["npm", "start"]docker build -t uygulamam .
docker run -d -p 3000:3000 uygulamamUsean palvelun ympäristö Docker Composella
Todelliset projektit koostuvat yleensä useista osista: verkkopalvelin, tietokanta ja ehkä välimuisti. Sen sijaan että käynnistäisit jokaisen erillisillä docker run -komennoilla, määrittelet ne kaikki yhdessä compose.yaml-tiedostossa Docker Composella.
Alla oleva esimerkki käynnistää nginx-verkkopalvelimen ja MariaDB-tietokannan yhdessä. Koska tietokantatiedostot säilytetään nimetyssä volumessa, tiedot säilyvät, vaikka kontti poistettaisiin. Vanhoissa esimerkeissä näkyvä version-rivi ei ole enää tarpeen.
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./site:/usr/share/nginx/html:ro
depends_on:
- db
db:
image: mariadb:lts
environment:
MARIADB_ROOT_PASSWORD: degistirin
MARIADB_DATABASE: uygulama
volumes:
- db-veri:/var/lib/mysql
volumes:
db-veri:docker compose up -d
docker compose ps
docker compose logs -f
docker compose down
# Volume'larla birlikte sil (veriler gider)
docker compose down -vYleiset virheet ja ratkaisut
Docker-asennuksessa kohdattavat ongelmat liittyvät useimmiten virtualisointiin, käyttöoikeuksiin ja porttiristiriitoihin. Jos imaget ja pysähtyneet kontit täyttävät ajan myötä levyn, docker system prune siivoaa käyttämättömät resurssit; komento pyytää vahvistuksen ennen poistamista.
- WSL 2- tai virtualisointivirhe: Ota virtualisointi käyttöön BIOSissa, päivitä WSL komennolla wsl --update ja käynnistä tietokone uudelleen.
- port is already allocated: Valitsemasi portti on toisen sovelluksen käytössä. Valitse toinen portti, kuten -p 8081:80, tai sulje ristiriitainen sovellus.
- permission denied ... docker.sock: Käyttäjäsi ei ole Linuxissa docker-ryhmässä; kirjaudu ulos ja takaisin sisään usermod-komennon jälkeen.
- Cannot connect to the Docker daemon: Docker Desktop on suljettu tai palvelu ei ole käynnissä Linuxissa; käynnistä se komennolla sudo systemctl start docker.
- Image-arkkitehtuurivaroitus Macissa: Jotkin imaget julkaistaan vain x86:lle. Valitse mahdollisuuksien mukaan ARM-tukea sisältävä tunniste.
Mitä Docker tuo verkkoprojekteihin?
Docker varmistaa, että verkkoprojektin kehitys-, testi- ja tuotantoympäristöt ovat samanlaiset. Kun PHP:tä ja tietokantaa sisältävä projekti ajetaan konteilla yhden koneen pakettien, kuten XAMPP-asennuksen, sijaan, versioeroista johtuvat yllätykset vähenevät. PHP-riippuvuuksien hallintaan kontissa voit tutustua myös oppaaseemme Composer-asennus.
Toistettavat ympäristöt helpottavat sitä, että nopeus- ja suorituskykyparannukset tuottavat saman tuloksen myös tuotannossa. Tämä yhdenmukaisuus on erityisen tärkeää usean järjestelmän yhdessä toimiviin integroituihin ratkaisuihin ja kasvavaan verkkokauppa-alustaan.
Muita kontti- ja palvelinsisältöjä löydät Docker-tunnisteen sivulta.
Usein kysytyt kysymykset
01Mikä ero on Dockerilla ja virtuaalikoneella?
Virtuaalikone kuljettaa mukanaan oman käyttöjärjestelmänsä, vie gigatavuittain tilaa ja käynnistyy minuuteissa. Kontti sen sijaan jakaa isäntäkoneen ytimen, voi pysyä megatavujen luokassa ja käynnistyy sekunneissa; toisaalta sen eristys ei ole yhtä vahva kuin virtuaalikoneen.
02Voiko Dockeria käyttää Windowsissa ilman Docker Desktopia?
Kyllä. Voit asentaa Docker Enginen suoraan WSL 2:ssa olevaan Linux-jakeluun. Tämä tapa tuo joustavuutta lisenssien kannalta, mutta menetät mukavuudet, kuten graafisen paneelin ja automaattiset päivitykset.
03Katoaako tietoni, kun kontti poistetaan?
Konttiin kirjoitettu data katoaa, kun kontti poistetaan. Liitä pysyvä data, esimerkiksi tietokantatiedostot, kontin ulkopuolelle volumella tai bind mountilla; muista, että komento docker compose down -v poistaa myös volumet.
04Käytetäänkö Dockeria tuotantopalvelimella?
Kyllä, monet sovellukset toimivat tuotannossa konteissa. Tuotantoympäristössä varmuuskopiointi, päivitykset, lokien seuranta ja tietoturva-asetukset on kuitenkin suunniteltava erikseen; kehityskoneen asennuksen kopioiminen sellaisenaan ei riitä.
Kun olet asentanut Dockerin ja ajanut ensimmäisen kontin, olet siirtynyt toistettavaan järjestykseen, jossa projektisi pystyy käynnistämään samalla tavalla millä tahansa koneella. Jos haluat yrityksellesi tässä järjestyksessä kehitetyn, helposti ylläpidettävän räätälöidyn ohjelmiston, tutustu Aurora Yazılımin räätälöityihin ohjelmistoratkaisuihin tai ota meihin yhteyttä.


