# Docker-opas aloittelijoille

Docker-oppaassamme esittelemme Docker-virtualisointialustan ja opastamme sinua Docker-ohjelmiston käytössä Ubuntu 22.04 -järjestelmässä helppotajuisten ohjeiden avulla.

## Dockerin rakenne ja ominaisuudet

”Kehitä, julkaise ja käytä mitä tahansa sovellusta missä tahansa” – tämä on Docker-alustan motto. Tämä avoimen lähdekoodin konttialusta tarjoaa joustavan ja resurssitehokkaan vaihtoehdon virtuaalikoneisiin (VM) perustuvalle laitteistokomponenttien emuloinnille.

**Perinteinen laitteistovirtualisointi** perustuu useiden vieraskoneiden käynnistämiseen yhteisellä isäntäkoneella, kun taas Docker-sovellukset suoritetaan erillisinä prosesseina samalla järjestelmällä **konttien** avulla. Tätä kutsutaan konttipohjaiseksi virtualisoinniksi, jota kutsutaan myös **käyttöjärjestelmätason virtualisoinniksi**.

[![Kuva: Virtual machines and software containers in comparison](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/f/9/csm_virtual-machines-compared-to-docker-containers_1216df397f.webp "Virtual machines and software containers in comparison")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Schaubilder/virtual-machines-compared-to-docker-containers.png) While each virtual machine launches its own operating system, Docker containers share the core of the host system Konttipohjaisen virtualisoinnin yksi suuri etu on se, että erilaisilla vaatimuksilla varustetut sovellukset voivat toimia toisistaan erillään ilman erillisen vierasjärjestelmän aiheuttamaa ylimääräistä kuormitusta. Lisäksi konttien avulla sovelluksia voidaan ottaa käyttöön **eri alustoilla ja erilaisissa infrastruktuureissa** ilman, että niitä tarvitsee mukauttaa isäntäjärjestelmän laitteisto- tai ohjelmistokokoonpanoihin.

Docker on suosituin ohjelmistoprojekti, joka tarjoaa käyttäjille **konttipohjaista virtualisointiteknologiaa**. Tämä avoimen lähdekoodin alusta perustuu kolmeen peruskomponenttiin. Konttien suorittamiseen käyttäjät tarvitsevat vain **Docker-moottorin** sekä erityisiä **Docker-kuvia**, joita voi hankkia **Docker Hubista** tai luoda itse.

Vinkki Docker-kontit ja -kuvat ovat pääosin yleiskäyttöisiä, mutta niitä voidaan tarvittaessa mukauttaa laajasti. Lisätietoja aiheesta löytyy Docker-kontteja käsittelevästä artikkelistamme.

### Docker-kuvat

Virtuaalikoneiden tavoin Docker-kontit perustuvat Docker-kuviin. Kuva on vain luku -muotoinen malli, joka sisältää kaikki ohjeet, joita Docker-moottori tarvitsee kontin luomiseen. Docker-kuva on **kontin siirrettävä kuva** tekstitiedostomuodossa, **jota** kutsutaan myös Dockerfile-tiedostoksi. Jos kontti on tarkoitus käynnistää järjestelmässä, ladataan ensin kyseisen kuvan sisältävä paketti, ellei sitä ole jo paikallisesti. Ladattu kuva tarjoaa tarvittavan **tiedostojärjestelmän, mukaan lukien kaikki** ajon aikaiset **parametrit**. Konttia voidaan pitää kuvan käynnissä olevana prosessina.

### Docker Hub

Docker Hub on pilvipohjainen **rekisteri ohjelmistovarastoille**, eräänlainen kirjasto Docker-kuville. Verkkopalvelu on jaettu julkiseen ja yksityiseen osioon. Julkisessa osiossa käyttäjät voivat ladata itse kehittämiään kuvia ja jakaa niitä yhteisön kanssa. Täältä löytyy useita virallisia kuvia, jotka ovat peräisin Docker-kehitystiimiltä ja vakiintuneilta avoimen lähdekoodin projekteilta. Rekisterin yksityiseen osioon ladatut kuvat eivät ole julkisesti saatavilla, joten niitä voidaan jakaa esimerkiksi yrityksen sisäpiirissä tai ystävien ja tuttavien kesken. Docker Hubiin pääsee osoitteessa [*hub.docker.com*](https://hub.docker.com/ "Docker Hub website").

### Docker-moottori

Docker-projektin ytimessä on Docker-moottori. Kyseessä on **avoimen lähdekoodin asiakaspalvelinsovellus**, jonka nykyinen versio on kaikkien käyttäjien saatavilla kaikilla vakiintuneilla alustoilla.

Docker-moottorin perusrakenne jakautuu kolmeen osaan: palvelintoimintoja suorittava **taustaprosessi**, REST-ohjelmointimallin (Representational State Transfer) pohjalta **kehitetty sovellusliittymä (API)** sekä **käyttöjärjestelmän komentorivi** (CLI), joka toimii käyttöliittymänä (asiakas).

- **Docker-daemon**: Docker-moottorin palvelimena toimii daemon-prosessi. Docker-daemon toimii isäntäjärjestelmän taustalla, ja sitä käytetään Docker-moottorin keskitettyyn hallintaan. Tämä toiminto luo ja hallinnoi kaikkia kuvia, kontteja ja verkkoja.
- **REST-API**: REST-API määrittelee joukon rajapintoja, joiden avulla muut ohjelmat voivat kommunikoida Docker-daemonin kanssa ja antaa sille ohjeita. Yksi näistä ohjelmista on käyttöjärjestelmän terminaali.
- **Terminaali**: Docker käyttää asiakasohjelmana käyttöjärjestelmän terminaalia. Tämä on integroitu Docker-daemoniin REST-API:n kautta, minkä ansiosta käyttäjät voivat hallita sitä skriptien tai käyttäjän syöttämien komentojen avulla.

Vinkki Vuonna 2017 Docker-moottori nimettiin uudelleen *Docker Community Editioniksi* (lyhennettynä Docker CE), mutta virallisessa dokumentaatiossa ja Docker-pakettivarastoissa käytetään edelleen pääosin vanhaa nimeä. Docker CE:n lisäksi on olemassa myös *Docker Enterprise Edition* (Docker EE), joka sisältää joitakin lisäominaisuuksia. Se ei kuitenkaan ole ilmainen, ja se sopii paremmin yrityskäyttöön.

Docker-komentojen avulla käyttäjän ohjelmistokontteja voidaan käynnistää, pysäyttää ja hallita suoraan terminaalista. Daemonia ohjataan komennolla `docker` ja ohjeilla kuten `build`, `pull` tai `run`. Asiakas ja palvelin voivat sijaita samassa järjestelmässä. Käyttäjillä on myös mahdollisuus käyttää toisessa järjestelmässä olevaa Docker-daemonia. Muodostettavan yhteyden tyypistä riippuen asiakkaan ja palvelimen välinen viestintä tapahtuu REST-API:n, UNIX-socketien tai verkkoliitännän kautta.

Seuraava kaavio havainnollistaa **yksittäisten Docker-komponenttien vuorovaikutusta** esimerkkikomentojen `docker build`, `docker pull` ja `docker run` avulla:

[![Kuva: Schematic representation of the Docker architecture](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/e/1/csm_docker-architecture-schematic_0cb6890f75.webp "Schematic representation of the Docker architecture")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Schaubilder/docker-architecture-schematic.png) 'The Docker architecture is based on the cooperation of the client (terminal'), palvelin (Docker-daemon) ja rekisteri (Docker Hub).“ Komento `docker build` ohjeistaa Docker-daemonia luomaan kuvan (katkoviiva). Tätä varten tarvitaan vastaava **Dockerfile-tiedosto**. Jos kuvaa ei haluta luoda, vaan ladata Docker Hubin arkistosta, käytetään komentoa `docker pull` (katkoviiva). Jos Docker-daemonille annetaan komennolla `docker run` käsky käynnistää kontti, taustaohjelma tarkistaa, onko vastaava konttikuva saatavilla paikallisesti. Jos on, kontti käynnistetään (yhtenäinen viiva). Jos daemon ei löydä kuvaa, se käynnistää automaattisesti latauksen arkistosta.

## Docker-työskentely

Nyt on aika tutustua **konttialustan sovelluksiin**. Jos et ole vielä asentanut Docker-moottoria, voit tehdä sen Linux-terminaalin kautta. Ohjeet asennukseen löydät artikkelistamme”Docker-moottorin asentaminen Ubuntu 22.04:ään”. Seuraavassa kerrotaan, miten Docker-moottoria hallitaan terminaalista, mitä hyötyä Docker Hubista on ja miksi Docker-kontit voivat mullistaa tavan, jolla työskentelet sovellusten parissa.

Vinkki Jos haluat asentaa Docker-ohjelmiston johonkin toiseen Linux-jakeluun tai Windows-käyttöjärjestelmään, seuraavat ohjeet auttavat sinua:

- Docker-ohjelmiston asentaminen Debian 11:een
- Docker-asennus Ubuntu 20.04:ään
- Docker-asennus CentOS 7:ään
- Docker-asennus Windows 10:een
- Docker-asennus Windows 11:een
- Docker-asennus Raspberry Pi:lle

### Kuinka hallita Docker-moottoria

Ubuntu on käyttänyt prosessien hallintaan **taustaprogrammia *systemd***(lyhenne sanoista ”system daemon”) versiosta 16.04 lähtien.*Systemd on*käynnistysprosessi, jota käytetään myös muissa Linux-jakeluissa, kuten RHEL:ssä, CentOS:ssa tai Fedorassa. Yleensä*systemd saa*prosessitunnuksen 1. Järjestelmän ensimmäisenä prosessina tämä taustaprosessi vastaa kaikkien seuraavien prosessien käynnistämisestä, valvonnasta ja lopettamisesta. Aikaisemmissa Ubuntu-versioissa (14.10 ja vanhemmat) taustaohjelma*upstart* hoitaa tämän tehtävän.

Docker-daemonia voidaan hallita myös *systemd:n* kautta. Vakioasennuksessa konttialusta on määritetty siten, että daemon käynnistyy automaattisesti järjestelmän käynnistyessä. Tätä oletusasetusta voidaan muokata komentorivityökalun **systemctl** avulla.

*Systemctl:n* avulla voit lähettää *systemd:* lle komentoja prosessin hallitsemiseksi tai sen tilan kyselemiseksi. Tällaisen komennon syntaksi on seuraava:

```bash
systemctl [OPTION] [COMMAND]
```

Jotkin komennot viittaavat tiettyihin resursseihin (esimerkiksi Docker). *Systemd:n* terminologiassa näitä kutsutaan yksiköiksi. Tällöin komento muodostuu kyseisestä ohjeesta ja sen yksikön nimestä, johon komento kohdistuu.

Jos haluat ottaa **Docker-daemonin automaattisen käynnistyksen** käyttöön (*enable*) tai poistaa sen käytöstä (*disable*), käytä komentorivityökalua *systemctl* seuraavilla komennoilla:

```bash
sudo systemctl enable docker
sudo systemctl disable docker
```

Komentorivityökalun *systemctl* avulla voit tarkistaa **yksikön tilan**:

```bash
sudo systemctl status docker
```

Jos Docker-moottori on käynnissä Ubuntu-järjestelmässäsi, terminaalin tuloste näyttää seuraavan kuvakaappauksen kaltaiselta:

[![Kuva: The status query via systemctl shows: The Docker engine is active (running)](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/f/7/csm_docker-status-active-running_f52601bd11.webp "The status query via systemctl shows: The Docker engine is active (running)")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-status-active-running.png) Status query via systemctl: The Docker Engine is active (running) Jos Docker-moottori on tällä hetkellä pois käytöstä, saat tilailmoituksen *inactive (dead)*. Tällöin sinun on käynnistettävä Docker-daemon manuaalisesti, jotta kontteja voidaan käyttää.

[![Kuva: The status query via systemctl shows: The Docker engine is inactive (dead)](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/d/a/csm_docker-status-inactive_cad5668ee9.webp "The status query via systemctl shows: The Docker engine is inactive (dead)")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-status-inactive.png) Status query via systemctl: The Docker engine is inactive (dead) Jos haluat **käynnistää, pysäyttää tai käynnistää Docker-moottorin uudelleen manuaalisesti**, anna *systemd:lle* jokin seuraavista komennoista.

**Käynnistä poistettu palvelin** käyttämällä *systemctl-komentoa* yhdessä komennon `start` kanssa:

```bash
sudo systemctl start docker
```

Jos **Docker-palvelin on tarkoitus lopettaa**, käytä sen sijaan komentoa `stop`:

```bash
sudo systemctl stop docker
```

**Moottorin uudelleenkäynnistys** käynnistyy komennolla `restart`:

```bash
sudo systemctl restart docker
```

### Docker Hubin käyttö

Jos Docker-moottori on konttialustan sydän, Docker Hub on avoimen lähdekoodin projektin sielu. Se on yhteisön kohtaamispaikka. **Pilvipohjaisesta rekisteristä** käyttäjät löytävät kaiken, mitä tarvitsevat Docker-asennuksensa käynnistämiseen.

Verkkopalvelu tarjoaa **monipuolisia virallisia sovellusarkistoja, joissa on yli 100 000 ilmaista sovellusta**. Käyttäjät voivat luoda kuvakirjaston ja käyttää sitä yhdessä työryhmien kanssa. Kehitystiimin tarjoaman ammattimaisen tuen lisäksi aloittelijat löytävät täältä yhteyksiä käyttäjäyhteisöön. [**GitHubissa**](https://github.com/docker/hub-feedback/issues "Docker’s GitHub website") on käytettävissä foorumi yhteisön tukea varten.

[![Kuva: The Docker hub: Registration](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/a/0/csm_docker-hub-login-page_d232488fe7.webp "The Docker hub: Registration")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-hub-login-page.png) Create your personal Docker ID for free by registering / Source: hub.docker.com #### Rekisteröityminen Docker Hubiin

**Rekisteröityminen Docker Hubiin on ilmaista**. Käyttäjät tarvitsevat vain sähköpostiosoitteen ja valitsemansa Docker-tunnuksen. Tämä toimii myöhemmin henkilökohtaisena **tallennustilan nimitilana** ja antaa käyttäjille pääsyn kaikkiin Docker-palveluihin. Tällä hetkellä tarjous sisältää Docker Hubin lisäksi Docker Cloudin, Docker Storen ja valikoituja beta-ohjelmia. Sen avulla **Docker-tunnusta** voidaan käyttää kirjautumistunnuksena Docker-tukikeskukseen sekä Docker Success -portaaliin ja [Docker-foorumiin](https://www.docker.com/community/ "Docker Community forum").

Rekisteröitymisprosessi koostuu viidestä vaiheesta:

1. **Valitse Docker-tunnuksesi**: Valitse hakemuksen ensimmäisessä vaiheessa käyttäjätunnus, jota käytetään myöhemmin henkilökohtaisena Docker-tunnuksena.
2. **Syötä sähköpostiosoite**: Syötä nykyinen sähköpostiosoitteesi. Huomaa, että sinun on vahvistettava rekisteröitymisesi Docker Hubiin sähköpostitse.
3. **Valitse salasana**: Valitse salainen salasana.
4. **Lähetä rekisteröitymisesi**: Napsauta ”Rekisteröidy” lähettääksesi rekisteröitymisesi. Kun tiedot on lähetetty, Docker lähettää linkin sähköpostiosoitteeseesi, jotta voit vahvistaa sähköpostiosoitteesi.
5. **Vahvista sähköpostiosoitteesi**: Vahvista sähköpostiosoitteesi napsauttamalla vahvistuslinkkiä.

Docker-projektin verkkopalvelut ovat käytettävissä heti, kun olet rekisteröitynyt selaimessa. Täällä voit luoda arkistoja ja työryhmiä tai etsiä Docker Hubista julkisia resursseja ”Explore”-toiminnon avulla.

[![Kuva: Dashboard of the Docker hub](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/f/a/csm_docker-hub-dashboard_1d08a8d15d.webp "Dashboard of the Docker hub")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-hub-dashboard.png) Select and set repositories and workgroups via the Docker hub dashboard / Source: hub.docker.com Voit kirjautua sisään myös suoraan käyttöjärjestelmän komentoriviltä komennolla *docker login*. Yksityiskohtainen kuvaus komennosta löytyy [Docker-ohjeista](https://docs.docker.com/engine/reference/commandline/login/ "Docker documentation").

Periaatteessa Docker Hub on käytettävissä myös niille, **joilla ei ole tiliä tai Docker-tunnusta**. Tällöin on kuitenkin mahdollista ladata vain julkisten arkistojen kuvia. Omien kuvien lataaminen (*push*) ei ole mahdollista ilman Docker-tunnusta.

#### Luo arkistoja Docker Hubissa

**Ilmainen Docker Hub -tili** sisältää yhden yksityisen arkiston ja tarjoaa mahdollisuuden luoda rajattomasti julkisia arkistoja. Jos tarvitset lisää yksityisiä arkistoja, voit avata ne **maksullisella päivityksellä**.

Luo arkisto seuraavasti:

1. **Valitse nimitila**: Uudet arkistot liitetään automaattisesti Docker-tunnuksesi nimitilaan. Voit myös syöttää sen organisaation tunnuksen, johon kuulut.
2. **Nimeä arkisto**: Anna nimi äskettäin luodulle arkistolle.
3. **Lisää kuvaus**: Lisää lyhyt kuvaus arkistostasi.
4. **Määritä näkyvyys**: Päätä, onko arkisto julkisesti näkyvä (*julkinen*) vai vain sinun tai organisaatiosi käytettävissä (*yksityinen*).

Vahvista syöttämäsi tiedot napsauttamalla ”Luo”.

[![Kuva: The Docker hub: Input screen for creating a repository](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/a/d/csm_docker-hub-repository-creation_ac7984ce9d.webp "The Docker hub: Input screen for creating a repository")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-hub-repository-creation.png) Your repositories are automatically created in the namespace of your Docker ID / Source: hub.docker.com #### Luo tiimejä ja organisaatioita

Hubin avulla Docker tarjoaa pilvipohjaisen alustan, jolla **itse luotuja kuvia hallitaan keskitetysti** ja **jaetaan** kätevästi **työryhmille**. Docker-terminologiassa näitä kutsutaan organisaatioiksi. Aivan kuten käyttäjätileillä, myös organisaatioille annetaan yksilölliset tunnisteet, joiden kautta kuvia voidaan jakaa ja ladata. Organisaation sisäiset oikeudet ja roolit voidaan määrittää tiimien kautta. Esimerkiksi ”Owners”-tiimiin määritetyillä käyttäjillä on oikeus luoda yksityisiä tai julkisia arkistoja sekä myöntää käyttöoikeuksia.

Työryhmiä voi myös luoda ja hallita suoraan hallintapaneelin kautta. Lisätietoja organisaatioista ja tiimeistä löytyy [Docker-ohjeista](https://docs.docker.com/docker-hub/orgs/ "Workgroups - Docker documentation").

### Kuvien ja säilytysastioiden käsittely

Docker Hub on virallisten Docker-resurssien ensisijainen lähde, ja se toimii lähtökohtanamme tässä **kuvien ja konttien käsittelyä käsittelevässä esittelyssä**. Kehitystiimi on julkaissut esittelykuvan nimeltä *whalesay*, jota käytämme seuraavan Docker-oppaamme pohjana.

#### Lataa Docker-kuvat

*Whalesay* -kuvan löydät käymällä Docker Hubin verkkosivustolla ja kirjoittamalla hakukenttään Docker-logon vieressä sanan *”whalesay* ”.

[![Kuva: The search function in Docker hub](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/c/c/csm_docker-hub-whalesay-repos_eae5c60dab.webp "The search function in Docker hub")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-hub-whalesay-repos.png) Search the Docker hub using the search bar or the ‘Explore’ button / Source: hub.docker.com Napsauta hakutuloksissa resurssia, jonka otsikko on *docker/whalesay*, jotta pääset tämän kuvan julkiseen arkistoon.

Docker-arkistot on aina rakennettu saman kaavan mukaan. Sivun yläosassa käyttäjät näkevät kuvan nimen, arkiston luokan sekä viimeisimmän latauksen ajankohdan (*last pushed*).

[![Kuva: Web view of a Docker repository](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/3/e/csm_docker-hub-official-whalesay-repo_2355257104.webp "Web view of a Docker repository")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-hub-official-whalesay-repo.png) In the repository, users generally find all information that is needed to use an image / Source: hub.docker.com Jokaisessa Docker-arkistossa on myös seuraavat tietoruudut:

1. **Kuvaus**: Yksityiskohtainen kuvaus, joka sisältää yleensä käyttöohjeet
2. **Docker pull -komento**: Komentorivikomento, jota käytetään kuvan lataamiseen arkistosta (`pull`)
3. **Omistaja**: Tiedot arkiston luojasta
4. **Kommentit**: Sivun lopussa oleva kommenttiosio

Repositorion tietokenttien mukaan *whalesay* on muunnos avoimen lähdekoodin Perl-skriptistä ***cowsay***. Tony Monroen vuonna 1999 kehittämä ohjelma luo lehmän muotoisen ASCII-kuvion, joka näkyy käyttäjän päätelaitteessa viestin yhteydessä.

Lataa *docker/whalesay* seura `docker pull`alla komennolla:

```bash
docker pull [OPTIONS] NAME [:TAG|@DIGEST]
```

Komento `docker pull` ohjeistaa daemonia lataamaan kuvan arkistosta. Määrität kuvan syöttämällä kuvan nimen (*NAME*). Voit myös ohjeistaa Dockerille, miten haluttu komento tulisi suorittaa (*OPTIONS*). Valinnaisia syötteitä ovat **tunnisteet** (*:TAG*) ja yksilölliset **tunnistenumerot** (*@DIGEST*), joiden avulla voit ladata kuvan tietyn version.

Paikallinen kopio *docker/whalesay-kuvasta* ladataan seuraavalla komennolla:

```bash
docker pull docker/whalesay
```

Yleensä voit ohittaa tämän vaiheen. Jos haluat käynnistää kontin, Docker-palvelin lataa automaattisesti tallennustilasta ne kuvat, joita se ei löydä paikallisesta järjestelmästä.

#### Käynnistä Docker-kuvat kontteina

Käynnistä Docker-kuva `docker run` komennolla:

```bash
docker run [OPTIONS] IMAGE [:TAG|@DIGEST] [CMD] [ARG...]
```

`docker run` ainoa pakollinen osa on halutun Docker-kuvan nimi. Kun käynnistät kontin, voit kuitenkin määrittää myös lisäasetuksia, TAG-tunnisteita ja DIGEST-tunnisteita. Lisäksi `docker run` voidaan yhdistää muihin komentoihin, jotka suoritetaan heti kontin käynnistyessä. Tällöin **CMD** (COMMAND, jonka kuvan luoja on määrittänyt ja joka suoritetaan automaattisesti kontin käynnistyessä) korvataan. Muita valinnaisia asetuksia voidaan määrittää **lisäargumenteilla** (*ARG…*). Tämä mahdollistaa esimerkiksi käyttäjien lisäämisen tai ympäristömuuttujien siirtämisen.

Käytä komentorivikomentoa

```bash
docker run docker/whalesay cowsay boo
```

lataamaan olemassa olevan Perl-skriptin kuvatiedostona ja suorittamaan sen kontissa. Huomaat, että *whalesay* eroaa huomattavasti alkuperäisestä skriptistä.

[![Kuva: Terminal output of the container docker/whalesay: The whale says ‘boo’](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/e/4/csm_docker-run-whalesay-boo-english_82f28f20b7.webp "Terminal output of the container docker/whalesay: The whale says ‘boo’")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-run-whalesay-boo-english.png) If docker/whalesay is run with the standard command, the Docker whale is limited to a short ‘boo’ Kun *docker/whalesay-kuva* suoritetaan, skripti tulostaa valaan muotoisen ASCII-kuvion sekä tekstiviestin ”boo”, joka on annettu terminaalissa *cowsay* -komennolla.

Kuten koeajon yhteydessä, daemon etsii ensin haluttua kuvaa paikallisesta tiedostohakemistosta. Koska samannimistä pakettia ei löydy, aloitetaan kuvan lataaminen Docker-arkistosta. Sen jälkeen daemon käynnistää muokatun *cowsay-ohjelman*. Kun ohjelma on suoritettu loppuun, **kontti suljetaan automaattisesti**.

Kuten *cowsay*, myös Docker-ohjelmiston *whalesay* tarjoaa mahdollisuuden puuttua ohjelman kulkuun ja vaikuttaa terminaalin tekstilähtöön. Kokeile tätä toimintoa korvaamalla output-komennon sana ”boo” millä tahansa merkkijonolla tai esimerkiksi tylsällä valasvitsillä.

```bash
sudo docker run docker/whalesay cowsay What did the shark say to the whale? What are you blubbering about?
```

[![Kuva: Terminal output of the container docker/whalesay: A whale with an individual message](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/8/6/csm_docker-run-whalesay-joke_6337d3f36a.webp "Terminal output of the container docker/whalesay: A whale with an individual message")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-run-whalesay-joke.png) Make your Docker whale say whatever you want by placing words in his speech bubble #### Näytä kaikki paikallisessa järjestelmässä olevat Docker-kuvat

Jos et ole varma, oletko jo ladannut tietyn kuvan, voit tarkastella **luetteloa kaikista paikallisessa järjestelmässäsi olevista kuvista**. Käytä seuraavaa komentorivikomentoa:

```bash
sudo docker image
```

Komento `docker images` (vaihtoehto `docker image ls`) tulostaa kaikki paikalliset kuvat, mukaan lukien tiedostokoon, tunnisteen ja kuvan tunnisteen.

[![Kuva: Overview of all images on the local system](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/3/9/csm_sudo-docker-images-empty_9806635619.webp "Overview of all images on the local system")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-images-empty.png) The overview displays the images hello-world and docker/whalesay Kun käynnistät kontin, sen pohjana oleva kuva ladataan kopiona arkistosta ja tallennetaan pysyvästi tietokoneellesi. Tämä säästää aikaa, jos haluat käyttää kuvaa myöhemmin. Uusi lataus käynnistyy vain, jos kuvan lähde muuttuu, esimerkiksi jos arkistosta on saatavilla uusi versio.

#### Näytä kaikki paikallisessa järjestelmässä olevat säilytysastiat

Jos haluat saada **yleiskatsauksen kaikista** järjestelmässäsi käynnissä olevista tai aiemmin käynnissä olleista **kontteista**, käytä komentorivikomentoa `docker ps` yhdessä vaihtoehdon `--all` kanssa (lyhenne: `-a`):

```bash
sudo docker ps -a
```

[![Kuva: Overview of all containers on the local system](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/5/a/csm_sudo-docker-ps-a-english_74f680383e.webp "Overview of all containers on the local system")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-ps-a-english.png) The overview shows all containers that have been launched on the Docker engine Terminaalin tuloste sisältää tietoja, kuten kyseisen **kontin tunnisteen**, sen perustana olevan **kuvan**, kontin käynnistyksen yhteydessä suoritetun **komennon**, kontin **käynnistysajan** sekä **tilan**.

Jos haluat näyttää vain ne kontit, jotka ovat tällä hetkellä käynnissä järjestelmässäsi, käytä komentorivikomentoa `docker ps` ilman muita vaihtoehtoja:

```bash
sudo docker ps
```

Tällä hetkellä järjestelmässäsi ei kuitenkaan pitäisi olla käynnissä olevia kontteja.

#### Luo Docker-kuvia

Docker-oppaassamme on jo kerrottu, miten löydät kuvia Docker Hubista, lataat ne ja suoritat ne millä tahansa järjestelmällä, johon Docker-moottori on asennettu. Dockerilla pääset kuitenkin käsiksi paitsi rekisterissä olevaan laajaan sovellusvalikoimaan, myös moniin eri vaihtoehtoihin **omien kuvien luomiseen** ja niiden jakamiseen muiden kehittäjien kanssa.

Tämän Docker-oppaiden johdantokappaleissa olet jo oppinut, että jokainen Docker-kuva perustuu **Dockerfile-tiedostoon**. Voit ajatella Dockerfile-tiedostoja eräänlaisina **kuvien rakennusmallina**. Ne ovat yksinkertaisia tekstitiedostoja, jotka sisältävät kaikki ohjeet, joita Docker tarvitsee kuvan luomiseen. Seuraavissa vaiheissa opit kirjoittamaan tällaisen Dockerfile-tiedoston ja ohjeistamaan Dockeria käyttämään sitä oman kuvasi pohjana.

1. **Luo uusi kansio**: Docker-kehitystiimi suosittelee, että jokaiselle Dockerfile-tiedostolle luodaan oma kansio. Kansiot on helppo luoda Linux-käyttöjärjestelmässä komentoriviltä. Luo kansio nimeltä *mydockerbuild* seuraavalla komentorivikomennolla:

```bash
mkdir mydockerbuild
```

[![Kuva: Ubuntu terminal: The command mkdir](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/4/8/csm_mkdir-mydockerbuild-english_b8f27a8820.webp "Ubuntu terminal: The command mkdir")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/mkdir-mydockerbuild-english.png) Create new directories with the command mkdir 2. **Siirry uuteen hakemistoon**: Siirry äskettäin luotuun työkansioon komennolla `cd`.

```bash
cd mydockerbuild
```

[![Kuva: Ubuntu terminal: The command cd](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/6/d/csm_cd-mydockerbuild-english_93ecadd291.webp "Ubuntu terminal: The command cd")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/cd-mydockerbuild-english.png) With the help of the cd command, switch to another working directory 3. **Luo uusi tekstitiedosto**: Ubuntussa voit luoda tekstitiedostoja helposti myös terminaalin kautta. Käytä tähän esimerkiksi Nano- tai Vim-editoria. Luo *mydockerbuild-hakemistoon* tekstitiedosto nimeltä *Dockerfile*.

```bash
nano Dockerfile
```

[![Kuva: Ubuntu terminal: Create text files with Nano](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/2/4/csm_nano-dockerfile-empty_b2b1b6195b.webp "Ubuntu terminal: Create text files with Nano")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/nano-dockerfile-empty.png) The text editor Nano is preinstalled on all Ubuntu versions 4. **Kirjoita Dockerfile**: Äskettäin luotu tekstitiedosto toimii itse kehitettävän kuvan rakennusohjeena. Sen sijaan, että ohjelmoisimme kuvan alusta asti, käytämme tässä Docker-oppaassa esittelykuvaa *docker/whalesay* mallina. Se sisällytetään Dockerfile-tiedostoon *FROM-komennolla*. Käytä tunnistetta *:latest* viitataksesi kuvan uusimpaan versioon.

```none
FROM docker/whalesay:latest
```

Tähän mennessä *docker/whalesay* on toiminut niin, että olet itse syöttänyt sille sanat. Terminaalissa näkyy syöttämäsi teksti yhdessä kontin käynnistyskomennon kanssa. Olisi kuitenkin mielenkiintoisempaa, jos skripti luo uuden tekstin **automaattisesti**. Tämä voidaan toteuttaa esimerkiksi käyttämällä *fortunes-ohjelmaa*, joka löytyy jokaisesta Linux-järjestelmästä. *Fortunesin* perustoiminto on luoda onnenkeksien sanontoja ja humoristisia aforismeja. Käytä seuraavaa komentoa päivittääksesi nykyisen paikallisen pakettihakemistosi ja asentaaksesi *fortunes-ohjelman*:

```none
RUN apt-get -y update && apt-get install -y fortunes
```

Määritä sitten *CMD-komento*. Se suoritetaan *RUN-kom* ennon jälkeen, ellei sitä ole ohitettu call (`docker run image CMD`) -komennolla. Käytä seuraavaa komentoa, jotta *fortunes-ohjelma* suoritetaan `-a` htoehdolla (”Valitse kaikista tietokannoista”) ja tulos näytetään terminaalissa *cowsay* -ohjelman avulla:

```none
CMD /usr/games/fortune -a | cowsay
```

Dockerfile-tiedostosi tulisi näyttää seuraavalta:

```none
FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsay
```

Huomautus: Dockerfile-tiedoston **komennot** kirjoitetaan **aina yhden rivivälin välein**, ja ne alkavat aina avainsanalla. Syntaksi ei erota isoja ja pieniä kirjaimia, joten kirjoitustavalla ei ole merkitystä. Avainsanojen kirjoittamisessa on kuitenkin vakiintunut tietty käytäntö.

[![Kuva: The text editor Nano in the Ubuntu terminal](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/b/b/csm_nano-dockerfile-full_bd1796f06d.webp "The text editor Nano in the Ubuntu terminal")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/nano-dockerfile-full.png) Control the text editor Nano via the key combinations given in the footer 1. **Tallenna tekstitiedosto**: Tallenna syöttämäsi tiedot. Jos käytät Nano-editoria, tallenna painamalla näppäinyhdistelmää \[CTRL\] + \[O\] ja vahvista painamalla \[ENTER\]. Nano ilmoittaa, että valittuun tiedostoon on kirjoitettu kolme riviä. Sulje tekstieditori painamalla näppäinyhdistelmää \[CTRL\] + \[X\].
2. **Luo kuva Dockerfile-tiedostosta**: Luo kuva Dockerfile-**tiedostosta** siirtymällä ensin hakemistoon, jossa tekstitiedosto sijaitsee. Aloita kuvan luominen komentorivikomennolla `docker build`. Jos haluat nimetä kuvan erikseen tai antaa sille tunnisteen, käytä vaihtoehtoa `-t` ja kirjoita sen jälkeen haluamasi nimen ja tunnisteen yhdistelmä. Vakiomuoto on `name:tag`.

Tässä esimerkissä tulisi luoda kuva, jonka nimi on *docker-whale*:

```bash
docker build -t docker-whale .
```

Viimeinen **kohta** osoittaa, että kyseinen Dockerfile sijaitsee valitussa hakemistossa. Voit myös määrittää lähdetiedostojen tiedostopolun tai URL-osoitteen.

*Kompilointiprosessi* käynnistyy heti, kun komento vahvistetaan painamalla \[ENTER\]. Ensin Docker-palvelin tarkistaa, onko sillä kaikki kuvan luomiseen tarvittavat tiedostot. Docker-terminologiassa tätä kutsutaan yleisesti termillä ”konteksti”.

Sitten etsitään *docker/whalesay* -kuva, jonka tunniste on *:latest*:

Jos kuvan luomiseen tarvittava konteksti on jo kokonaisuudessaan olemassa, Docker-daemon käynnistää *FROM-komennolla* liitetyn kuvamallin väliaikaisessa kontissa ja siirtyy *Dockerfile-tiedoston* seuraavaan komentoon. Tässä esimerkissä kyseessä on *RUN-komento*, joka asentaa *fortunes-ohjelman*.

Kuvien luomisprosessin jokaisen vaiheen lopussa Docker antaa sinulle **tunnisteen kyseisessä** vaiheessa luodulle **kerrokselle**. Tämä tarkoittaa, että jokainen taustalla olevan Dockerfile-tiedoston rivi vastaa siitä rakennetun kuvan yhtä kerrosta.

Kun *RUN-komento* on suoritettu loppuun, Docker-daemon pysäyttää sille luodun kontin, poistaa sen ja käynnistää uuden väliaikaisen kontin CMD-lauseen kerrokselle. Luomisprosessin päätyttyä myös tämä väliaikainen kontti lopetetaan ja poistetaan. Docker ilmoittaa uuden kuvan tunnisteen:

```none
Successfully built a8f2048c9ab8
```

[![Kuva: Ubuntu terminal: Status message during image creation](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/f/6/csm_sudo-docker-build-whale-english_d6b1eb3cf7.webp "Ubuntu terminal: Status message during image creation")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-build-whale-english.png) Docker images are created in multiple layers Juuri luomasi kuva löytyy nimellä *docker-whale* paikallisesti tallennettujen kuvien luettelosta.

```bash
sudo docker images
```

[![Kuva: Ubuntu terminal: Overview of all images](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/3/9/csm_docker-images-new-docker-whale_4a46337253.webp "Ubuntu terminal: Overview of all images")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-images-new-docker-whale.png) The newly created image in the image overview Jos haluat käynnistää kontin juuri luomastasi kuvasta, käytä komentorivikomentoa `sudo docker run` yhdessä kuvan nimen kanssa:

```bash
sudo docker run docker-whale
```

Jos kuva on luotu oikein Dockerfile-tiedoston avulla, valas pitäisi nyt inspiroida sinua enemmän tai vähemmän viisailla sanoilla. Huomautus: Aina kun käynnistät kontin uudelleen, syntyy uusi lause.

[![Kuva: Container based on docker-whale: Text output in the terminal](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/1/1/csm_sudo-run-docker-whale-fortunes-english_3bfb9d5385.webp "Container based on docker-whale: Text output in the terminal")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-run-docker-whale-fortunes-english.png) Thanks to fortunes, the ASCII whale now provides witty or wise phrases  Vinkki Voit lukea tarkemmin Docker-kuvien luomisesta aiheesta kertovasta erillisestä artikkelistamme.

#### Merkitse Docker-kuvat ja lataa ne Docker Hubiin

Jos haluat ladata oman *docker-whale-kuvasi* hubiin ja asettaa sen yhteisön tai työryhmän saataville, sinun on ensin linkitettävä se samannimiseen arkistoon omassa henkilökohtaisessa nimitilassasi. Docker-terminologiassa tätä vaihetta kutsutaan **taggaamiseksi**.

Voit julkaista kuvan Docker Hubissa seuraavasti:

1. **Luo arkisto**: Kirjaudu Docker Hubiin Docker-tunnuksellasi ja salasanallasi ja luo julkinen arkisto nimellä *docker-whale*.

[![Kuva: The Docker hub: Entry form for creating a repository](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/3/3/csm_docker-hub-create-docker-whale-repo_1266f7d9ea.webp "The Docker hub: Entry form for creating a repository")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-hub-create-docker-whale-repo.png) Create a repository for your custom image / Source: hub.docker.com 2. **Määritä kuvan tunniste**: Määritä mukautetun *docker-whale-kuvan* tunniste komentorivikomennolla `docker images`.

[![Kuva: Overview of all local images in the Ubuntu terminal](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/5/a/csm_sudo-docker-images-id-english_265f2f9d16.webp "Overview of all local images in the Ubuntu terminal")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-images-id-english.png) The command docker images lists all images that are saved on your system Tässä tapauksessa kuvan tunniste on *a8f2048c9ab8*. Tarvitsemme tätä seuraavassa vaiheessa tapahtuvaa merkitsemistä varten.

3. **Merkitse kuva**: Merkitse *docker-whale-kuva* komentoriviohjelman `docker tag` avulla seuraavasti:

```bash
sudo docker tag [Image-ID][Docker-ID]/[Image-Name]:[TAG]
```

Tässä esimerkissä merkitsemistä koskeva komentorivikomento on seuraava:

```bash
sudo docker tag a8f2048c9ab8 [Namespace]/docker-whale:latest
```

Voit tarkistaa `docker images` yleiskatsauksen avulla, oletko merkinnyt kuvasi oikein. Repositorion nimessä pitäisi nyt näkyä Docker-tunnuksesi.

[![Kuva: Ubuntu terminal: Image overview before and after tagging](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/6/e/csm_sudo-docker-tag-docker-whale-english_d2345804e2.webp "Ubuntu terminal: Image overview before and after tagging")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-tag-docker-whale-english.png) Link images with your Docker ID using the command docker tag 4. **Lataa kuva**: Voit ladata kuvan kirjautumalla ensin Docker Hubiin. Tämä onnistuu `docker login` komennolla.

```bash
sudo docker login
```

Tämän jälkeen pääte pyytää sinua antamaan käyttäjätunnuksesi (Docker-tunnuksen) ja salasanasi.

[![Kuva: Log in to the Docker hub via the Ubuntu terminal](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/3/3/csm_sudo-docker-login-english_77fe04ede0.webp "Log in to the Docker hub via the Ubuntu terminal")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-login-english.png) Before you can upload an image to the Docker hub, you first need to log in Jos kirjautuminen onnistui, lataa kuva äskettäin luotuun arkistoon käyttämällä komentorivikomentoa `docker push`.

```bash
sudo docker push [Namespace]/docker-whale
```

Lataaminen kestää vain muutaman sekunnin. Nykyinen tila näkyy terminaalissa.

[![Kuva: Ubuntu terminal: Status message of the image upload](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/c/a/csm_sudo-docker-push-whale-english_44b31ef5fd.webp "Ubuntu terminal: Status message of the image upload")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-push-whale-english.png) After uploading, the image is available under the set tag latest in the Docker hub Kirjaudu Docker Hubiin selaimella, jotta voit tarkastella ladattua kuvaa.

[![Kuva: Docker hub: The repository [Namespace]/docker-whale in the detailed view](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/5/e/csm_docker-hub-push-result_56530d8ebc.webp "Docker hub: The repository [Namespace]/docker-whale in the detailed view")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-hub-push-result.png) The latest update of your repository is shown in the detailed view / Source: hub.docker.com Jos haluat ladata useamman kuin yhden kuvan kutakin arkistoa kohti, käytä erilaisia tunnisteita, jotta kuvasi ovat saatavilla eri versioina. Esimerkiksi:

```none
[Namespace]/docker-whale:latest
[Namespace]/docker-whale:version1
[Namespace]/docker-whale:version2
```

Yleiskatsaus eri kuvaversioista löytyy Docker Hub -arkistosta ”Tags”-välilehdeltä.

[![Kuva: Docker hub: The ‘Tags’ tab](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/3/9/csm_docker-hub-multiple-versions-tags_e6c43a478d.webp "Docker hub: The ‘Tags’ tab")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-hub-multiple-versions-tags.png) In the ‘Tags’ tab, you’ll find all versions of an image / Source: hub.docker.com Eri hankkeiden kuvat tulisi kuitenkin tarjota erillisissä arkistoissa.

Jos tiedoston lähetys onnistui, mukautettu kuvasi on nyt julkisen arkiston kautta kaikkien Docker-käyttäjien saatavilla ympäri maailmaa.

1. **Kokeilu**: Tarkista, onko tiedoston lähetys onnistunut, yrittämällä ladata kuva.

Huomaa, että paikallinen versio kuvasta on ensin poistettava, jotta uusi kopio samalla tunnisteella voidaan ladata. Muussa tapauksessa Docker ilmoittaa, että haluttu kuva on jo olemassa nykyisessä versiossa.

[![Kuva: The Image is up to date](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/f/0/csm_sudo-docker-pull-docker-whale-english_84e2e758c4.webp "The Image is up to date")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-pull-docker-whale-english.png) If an image exists locally, the pull command is cancelled Poistaaksesi paikallisen Docker-kuvan, käytä komentorivikomentoa `docker rmi` yhdessä kyseisen kuvan tunnisteen kanssa. Tunniste määritetään tavalliseen tapaan komennolla `docker images`. Jos Docker ilmoittaa ristiriidasta, esimerkiksi siksi, että kuvan tunniste on käytössä useammassa kuin yhdessä arkistossa tai sitä käytetään kontissa, toista komento lisäämällä siihen vaihtoehto `--force` (lyhennettynä\*-f\* ) **pakottaaksesi poiston**.

```bash
sudo docker rmi -f a8f2048c9ab8
```

[![Kuva: Command docker rmi in combination with the option -f (force)](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/b/f/csm_sudo-docker-rmi-remove-image_75b679b119.webp "Command docker rmi in combination with the option -f (force)")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-rmi-remove-image.png) Use the command docker rmi in combination with the option -f to force a deletion Näytä jälleen yhteenveto kaikista paikallisista kuvista:

```bash
sudo docker Images
```

Poistettujen osien ei pitäisi enää näkyä terminaalin tulosteessa. Lataa nyt arkistossa annettu pull-komento käyttämällä **uusi kopio kuvasta** Docker Hubista.

```bash
sudo docker pull [Namespace]/docker-whale
```

[![Kuva: Ubuntu terminal: Download from the Docker hub](https://www.ionos.com/fi-fi/digitalguide/fileadmin/_processed_/4/8/csm_sudo-docker-pull-image-redownload_3dfb6af27f.webp "Ubuntu terminal: Download from the Docker hub")](https://www.ionos.com/fi-fi/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-pull-image-redownload.png) The previously published image is successfully downloaded ## Muita Docker-aiheita ja oppaita

Docker-maailma on laaja, ja ajan myötä [Docker-työkaluista on kehittynyt](https://www.ionos.com/fi-fi/digitalguide/palvelin/osaaminen/docker-tyoekalut-konttialustan-ekosysteemi/) elävä [ekosysteemi](https://www.ionos.com/fi-fi/digitalguide/palvelin/osaaminen/docker-tyoekalut-konttialustan-ekosysteemi/). Docker on erityisen hyödyllinen järjestelmänvalvojille, varsinkin jos he hallinnoivat monimutkaisia sovelluksia, joissa useita kontteja toimii rinnakkain eri järjestelmissä. Docker tarjoaa monipuolisia toimintoja tällaisten klusterien **hallintaan**. Lisätietoja aiheesta löytyy artikkelistamme, joka käsittelee Docker-klusterien hallintaa Swarm- ja Compose-työkalujen avulla.

Digitaalisessa oppaassa on **lisää opetusohjelmia** Docker-työskentelyyn:

- Docker-arkiston määrittäminen
- Docker-konttien levyt
- Docker: Varmuuskopiointi ja palautus
- Docker-ohjelmiston asentaminen ja käyttäminen Linux-palvelimella
- Docker Compose -opas

Docker sopii **monenlaisiin käyttötarkoituksiin**. Digitaalisesta oppaasta löydät seuraavat oppaat:

- [WordPressin käyttöönotto Docker-kontteissa](https://www.ionos.com/fi-fi/digitalguide/palvelin/osaaminen/wordpress-docker-kontteissa/)
- VPN:n käyttö Docker-kontissa SoftEtherin avulla
- Nextcloudin asennus Dockerilla
- Portainerin asentaminen Dockerissa
- Redis Docker-kontteissa
- Valheim-Docker-palvelin

Docker ei ole aina paras vaihtoehto kaikille sovelluksille. Yhdessä artikkelissamme esitellään suosituimmat [Docker-vaihtoehdot](https://www.ionos.com/fi-fi/digitalguide/palvelin/osaaminen/docker-vaihtoehdot-yhdellae-silmaeyksellae/). Lisäksi sivustollamme on useita artikkeleita, joissa verrataan Dockeria muihin alustoihin:

- Kubernetes vs. Docker
- Openshift vs. Docker
- Podman vs. Docker


This is a markdown version of: [https://www.ionos.com/fi-fi/digitalguide/palvelin/asetukset/docker-opas-asennus-ja-ensimmaeiset-askeleet/](https://www.ionos.com/fi-fi/digitalguide/palvelin/asetukset/docker-opas-asennus-ja-ensimmaeiset-askeleet/) for AI/LLM consumption.