Ero sivun ”Docker” versioiden välillä
p (Lisätty viite.) |
p (Pieni selkeytys.) |
||
(4 välissä olevaa versiota samalta käyttäjältä ei näytetä) | |||
Rivi 9: | Rivi 9: | ||
}} | }} | ||
'''Docker''' on ohjelma, jonka avulla voi eristää muita ohjelmia toimimaan omissa "säiliöissään" eli "konteissa". Se mahdollistaa periaatteessa minkä tahansa jakelun sovelluksen käytön kohdekoneessa. | '''Docker''' on ohjelma, jonka avulla voi eristää muita ohjelmia toimimaan omissa "säiliöissään" eli "konteissa". Se mahdollistaa periaatteessa minkä tahansa jakelun sovelluksen käytön kohdekoneessa. Kontit luodaan Docker-kuvan (eng. ''Docker image'') pohjalta. Docker-kuva on tavallaan kuin resepti tai pohjapiirustus, ja Docker-kontti on tavallaan kuin valmis ateria tai talo. Jokainen Docker-kuva määritellään niiden omassa <tt>dockerfile</tt> tiedostossa. | ||
==Asennus== | ==Asennus== | ||
Rivi 16: | Rivi 16: | ||
{{Varoitus|Kaikki Docker-ryhmään kuuluvat käyttäjät saavat samalla [[Root|pääkäyttäjän]] oikeudet käyttöönsä! Etene varoen.[https://github.com/moby/moby/issues/9976]}} | {{Varoitus|Kaikki Docker-ryhmään kuuluvat käyttäjät saavat samalla [[Root|pääkäyttäjän]] oikeudet käyttöönsä! Etene varoen.[https://github.com/moby/moby/issues/9976]}} | ||
Jotta tavallinen käyttäjä voi käyttää Dockeria ilman [[Sudo]]a tai [[OpenDoas]]ia, tulee Dockeria käyttävät käyttäjät lisätä <tt>docker</tt>-ryhmään. Joissain tapauksissa <tt>docker</tt>-ryhmä tulee ensin luoda. Muutokset tulevat voimaan uudelleenkirjautumisen jälkeen. | Jotta tavallinen käyttäjä voi käyttää Dockeria ilman [[Sudo]]a tai [[OpenDoas]]ia, tulee Dockeria käyttävät käyttäjät lisätä <tt>docker</tt>-ryhmään. Joissain tapauksissa <tt>docker</tt>-ryhmä tulee ensin luoda. Muutokset tulevat voimaan uudelleenkirjautumisen jälkeen. Tämä ei kuitenkaan ole välttämätön toimenpide, ja on suositeltavaa on olla lisäämättä käyttäjiä <tt>docker</tt>-ryhmään, jos ei ole täysin varma mitä on tekemässä. | ||
{{oikeudet}} | {{oikeudet}} | ||
Jos haluat lisätä käyttäjän <tt>docker</tt>-ryhmään, voi tehdä sen näin: | |||
# groupadd docker | # groupadd docker | ||
# usermod -aG docker <käyttäjä> | # usermod -aG docker <käyttäjä> | ||
Rivi 25: | Rivi 26: | ||
# systemctl start docker | # systemctl start docker | ||
Nyt Dockerin toimivuus voidaan testata <tt>hello-world</tt>illa | Nyt Dockerin toimivuus voidaan testata <tt>hello-world</tt>illa. Valitsin <tt>-rm</tt> poistaa kontin automaattisesti sen suorittamisen jälkeen. | ||
$ docker run hello-world | $ sudo docker run --rm hello-world | ||
== Docker pikaohje == | |||
{{Huomautus|On syytä varmistua Docker-kuvan sisällöstä ennen kuin käyttää sitä.}} | |||
Listaa tietokoneella olevat kontit ja niiden tila. | |||
sudo docker ps -a | |||
Käynnistä ja luo uusi kontti, joka siältää [[Arch Linux]]in ja interaktiivisen [[kuori|kuoren]] (valitsimet <tt>-it</tt>). | |||
sudo docker run -it archlinux | |||
Luo uusi kontti, joka sisältää viimeisimmän version [[MariaDB]]-tietokantapalvelimen [https://hub.docker.com/_/mariadb Docker Hubista] ja käynnistä se taustalla. | |||
sudo docker run -d --env MARIADB_RANDOM_ROOT_PASSWORD=1 mariadb:latest | |||
Lataa InterLisp Medleyn sisältävä Docker-kuva [https://hub.docker.com/r/interlisp/medley Docker Hubista] (Huom! <tt>docker run</tt> lataa Docker-kuvan automaattisesti, jos sitä ei löydy tietokoneelta). | |||
sudo docker pull interlisp/medley | |||
Lue Docker-kuvan meta-data tiedot. | |||
sudo docker image inspect <docker-kuvan-nimi> | |||
Käynnistä kontti (käytä komentoa <tt>docker ps -a</tt> löytääksesi kontin nimen). | |||
sudo docker start <kontin_nimi_tai_ID> | |||
Kiinnity taustalla suoritettavaan konttiin. | |||
sudo docker attach <kontin_nimi> | |||
Suorita ohjelma tai komento jonkin kontin sisällä. | |||
sudo docker exec <kontin_nimi_tai_ID> <ohjelma_tai_komento> | |||
Suorita interaktiivinen [[Bash]]-komentotulkki jonkin kontin sisällä. | |||
sudo docker exec -it <kontin_nimi_tai_ID> bash | |||
Kopioi tiedosto kontin sisältä omalle tietokoneelle. | |||
sudo docker cp <kontin_nimi_tai_ID>:/tiedosto oma_tietokone/tiedosto123 | |||
Kopioi tiedosto '''väliaikaisesti''' kontin siälle. Jos haluat tehdä pysyviä muutoksia, sinun täytyy muokata Docker-kuvan määrittelyn sisältävää <tt>dockerfile</tt>-tiedostoa. | |||
sudo docker cp ./tiedosto <kontin_nimi_tai_ID>:/tiedosto123 | |||
Pysäytä kontti. | |||
sudo docker stop <kontin_nimi_tai_ID> | |||
Poista kontti. | |||
sudo docker rm <kontin_nimi_tai_ID> | |||
Poista Docker-kuva. | |||
sudo docker image rm <Docker-kuvan-nimi> | |||
==Katso myös== | ==Katso myös== | ||
Rivi 33: | Rivi 79: | ||
* [[QEMU]] | * [[QEMU]] | ||
* [[Virtualbox]] | * [[Virtualbox]] | ||
* [[Alpine Linux]] - Alpine on jakelu, johon monet Docker-kontit pohjautuvat. | |||
==Aiheesta muualla== | ==Aiheesta muualla== | ||
* [https://www.docker.com/ Docker, Inc.] | * [https://www.docker.com/ Docker, Inc. - kotisivut] | ||
* [https://hub.docker.com Docker Hub] - Siältää virallisia ja yhteisön tekemiä Docker-kuvia. | |||
* [https://quay.io quay.io] - Toinen kontti-varasto, jota ylläpitää [[Red Hat]]. | |||
* [https://docs.docker.com/engine/security/ Dockerin tietoturvaan liittyvä dokumentaatio] | |||
* [https://github.com/boot2docker/boot2docker boot2docker], minimaalinen jakelu Docker-säiliöiden testaamiseen ja kehitykseen. | * [https://github.com/boot2docker/boot2docker boot2docker], minimaalinen jakelu Docker-säiliöiden testaamiseen ja kehitykseen. | ||
* [https://courses.mooc.fi/org/uh-cs/courses/devops-with-docker Ilmainen DevOps with Docker -MOOC-verkkokurssi - mooc.fi] | * [https://courses.mooc.fi/org/uh-cs/courses/devops-with-docker Ilmainen DevOps with Docker -MOOC-verkkokurssi - mooc.fi] |
Nykyinen versio 17. huhtikuuta 2025 kello 12.50
Docker | |
---|---|
![]() | |
Käyttöliittymä | teksti |
Lisenssi | Apache 2.0 |
Kotisivu | www.docker.com |
Lähdekoodi | github.com/docker/ |
Docker on ohjelma, jonka avulla voi eristää muita ohjelmia toimimaan omissa "säiliöissään" eli "konteissa". Se mahdollistaa periaatteessa minkä tahansa jakelun sovelluksen käytön kohdekoneessa. Kontit luodaan Docker-kuvan (eng. Docker image) pohjalta. Docker-kuva on tavallaan kuin resepti tai pohjapiirustus, ja Docker-kontti on tavallaan kuin valmis ateria tai talo. Jokainen Docker-kuva määritellään niiden omassa dockerfile tiedostossa.
Asennus[muokkaa]
Dockerin nimi vaihtelee eri jakeluiden välillä. Docker löytyy useimpien jakeluiden paketinhallinnasta nimellä docker tai docker-io tai docker.io. Lisätietoja ohjelmien asentamisesta löytyy artikkelista Ohjelmien asentaminen.
Jotta tavallinen käyttäjä voi käyttää Dockeria ilman Sudoa tai OpenDoasia, tulee Dockeria käyttävät käyttäjät lisätä docker-ryhmään. Joissain tapauksissa docker-ryhmä tulee ensin luoda. Muutokset tulevat voimaan uudelleenkirjautumisen jälkeen. Tämä ei kuitenkaan ole välttämätön toimenpide, ja on suositeltavaa on olla lisäämättä käyttäjiä docker-ryhmään, jos ei ole täysin varma mitä on tekemässä.
Jos haluat lisätä käyttäjän docker-ryhmään, voi tehdä sen näin:
# groupadd docker # usermod -aG docker <käyttäjä>
Ennen kuin Dockeria voidaan käyttää, tulee Docker daemon käynnistää.
# systemctl start docker
Nyt Dockerin toimivuus voidaan testata hello-worldilla. Valitsin -rm poistaa kontin automaattisesti sen suorittamisen jälkeen.
$ sudo docker run --rm hello-world
Docker pikaohje[muokkaa]
Listaa tietokoneella olevat kontit ja niiden tila.
sudo docker ps -a
Käynnistä ja luo uusi kontti, joka siältää Arch Linuxin ja interaktiivisen kuoren (valitsimet -it).
sudo docker run -it archlinux
Luo uusi kontti, joka sisältää viimeisimmän version MariaDB-tietokantapalvelimen Docker Hubista ja käynnistä se taustalla.
sudo docker run -d --env MARIADB_RANDOM_ROOT_PASSWORD=1 mariadb:latest
Lataa InterLisp Medleyn sisältävä Docker-kuva Docker Hubista (Huom! docker run lataa Docker-kuvan automaattisesti, jos sitä ei löydy tietokoneelta).
sudo docker pull interlisp/medley
Lue Docker-kuvan meta-data tiedot.
sudo docker image inspect <docker-kuvan-nimi>
Käynnistä kontti (käytä komentoa docker ps -a löytääksesi kontin nimen).
sudo docker start <kontin_nimi_tai_ID>
Kiinnity taustalla suoritettavaan konttiin.
sudo docker attach <kontin_nimi>
Suorita ohjelma tai komento jonkin kontin sisällä.
sudo docker exec <kontin_nimi_tai_ID> <ohjelma_tai_komento>
Suorita interaktiivinen Bash-komentotulkki jonkin kontin sisällä.
sudo docker exec -it <kontin_nimi_tai_ID> bash
Kopioi tiedosto kontin sisältä omalle tietokoneelle.
sudo docker cp <kontin_nimi_tai_ID>:/tiedosto oma_tietokone/tiedosto123
Kopioi tiedosto väliaikaisesti kontin siälle. Jos haluat tehdä pysyviä muutoksia, sinun täytyy muokata Docker-kuvan määrittelyn sisältävää dockerfile-tiedostoa.
sudo docker cp ./tiedosto <kontin_nimi_tai_ID>:/tiedosto123
Pysäytä kontti.
sudo docker stop <kontin_nimi_tai_ID>
Poista kontti.
sudo docker rm <kontin_nimi_tai_ID>
Poista Docker-kuva.
sudo docker image rm <Docker-kuvan-nimi>
Katso myös[muokkaa]
- Podman
- Distrobox
- QEMU
- Virtualbox
- Alpine Linux - Alpine on jakelu, johon monet Docker-kontit pohjautuvat.
Aiheesta muualla[muokkaa]
- Docker, Inc. - kotisivut
- Docker Hub - Siältää virallisia ja yhteisön tekemiä Docker-kuvia.
- quay.io - Toinen kontti-varasto, jota ylläpitää Red Hat.
- Dockerin tietoturvaan liittyvä dokumentaatio
- boot2docker, minimaalinen jakelu Docker-säiliöiden testaamiseen ja kehitykseen.
- Ilmainen DevOps with Docker -MOOC-verkkokurssi - mooc.fi