Asennusoppaat

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.

Aurora YazılımToimitustiimi 6 min lukuaika
Dockerin asennus ja ensimmäinen kontti
Miten Docker asennetaan?

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äsiteLyhyesti
ImageSovelluksen vain luettava malli; tuotetaan Dockerfilestä
KonttiImagesta käynnistetty, käynnissä oleva esiintymä
DockerfileTekstitiedosto, joka kuvaa, miten image rakennetaan
VolumePysyvä tietoalue, joka säilyy, vaikka kontti poistetaan
Docker HubJulkinen rekisteri, jossa valmiita imageja on tarjolla
Docker ComposeTyö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.
powershellWSL 2:n asennus (PowerShell järjestelmänvalvojana)
wsl --install

# Käynnistä tietokone uudelleen asennuksen jälkeen ja tarkista sitten
wsl --status

Docker 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.

powershellAsennus wingetillä Windowsissa
winget install -e --id Docker.DockerDesktop

Docker 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.

bashVirallinen apuskripti (kehitysympäristöön)
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 docker

Asennuksen 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.

bashVarmistuskomennot
docker --version
docker compose version
docker run hello-world

Ensimmä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.

bashnginx-kontti
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 images

Omien 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.

bash
docker run -d -p 8080:80 -v "$(pwd)":/usr/share/nginx/html:ro --name site nginx

Oman 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.

dockerfileDockerfile
FROM node:lts-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
bashKoonti ja ajo
docker build -t uygulamam .
docker run -d -p 3000:3000 uygulamam

Usean 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.

yamlcompose.yaml
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:
bashCompose-komennot
docker compose up -d
docker compose ps
docker compose logs -f
docker compose down

# Volume'larla birlikte sil (veriler gider)
docker compose down -v

Yleiset 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ä.