Docker on joukko PaaS (Platform as a Service) -tuotteita, jotka käyttävät käyttöjärjestelmätason virtualisointia toimittaakseen ohjelmistoja paketeissa, joita kutsutaan konteiksi. Palvelulla on sekä ilmainen että maksullinen taso. Ohjelmistoa, joka isännöi kontteja, kutsutaan Docker Engineksi. Se julkaistiin ensimmäisen kerran vuonna 2013, ja sen on kehittänyt Docker, Inc. (Wikipedia)
Dockerfile on skripti, joka sisältää ohjeet Docker-imagen rakentamiseen. Kun Dockerfile käsitellään, se luo Docker-imagen, joka on kevyt, itsenäinen paketti, joka sisältää sovelluksen koodin, kirjastot ja riippuvuudet. Tästä imagesta voidaan käynnistää Docker-kontti. Kontti on imagen käynnissä oleva instanssi, joka tarjoaa eristetyn ympäristön, jossa sovellus suoritetaan johdonmukaisesti eri järjestelmissä.
Dockerfile ---> Docker Image ---> Docker Container (resepti) (paketti) (käynnissä oleva instanssi)
Tässä on muutamia syitä Dockerin käyttöön:
Voit lukea lisää Dockerista ja miksi sitä kannattaa käyttää osoitteesta https://www.knowledgehut.com/blog/devops/why-use-docker.
Docker voi rakentaa imageja automaattisesti lukemalla ohjeet Dockerfilesta. Dockerfile on tekstidokumentti, joka sisältää kaikki komennot, joita käyttäjä voisi kutsua komentorivillä imagen kokoamiseksi. Voit lukea lisää Dockerfilesta osoitteesta https://docs.docker.com/engine/reference/builder/
Docker-image on kevyt, itsenäinen, suoritettava ohjelmistopaketti, joka sisältää kaiken tarvittavan sovelluksen suorittamiseen: koodin, ajonaikaisen ympäristön, järjestelmätyökalut, järjestelmäkirjastot ja asetukset.
Docker-kontti on ohjelmiston standardiyksikkö, joka pakkaa koodin ja kaikki sen riippuvuudet, jotta sovellus toimii nopeasti ja luotettavasti yhdestä laskentaympäristöstä toiseen.
Jotta voit käyttää Dockeria, tarvitset Docker Enginen tai Docker Desktopin. Docker Desktop on graafinen työkalu, joka helpottaa konttien käynnistämistä ja pysäyttämistä.
Voit ladata Docker Desktopin asennustiedostot osoitteesta https://docs.docker.com/engine/install/.
Windowsissa sinun täytyy asentaa myös WSL, jotta voit käyttää Docker Desktopia. Löydät ohjeet WSL:n (wsl2) asentamiseen osoitteesta https://learn.microsoft.com/en-us/windows/wsl/install.
.dockerignore-tiedoston tarkoitus on määrittää, mitkä tiedostot ja hakemistot tulee jättää pois Dockerin rakennuskontekstista — Docker-daemonille lähetettävistä tiedostoista imagea rakennettaessa. Tämä auttaa kontrolloimaan, mitä voidaan käyttää COPY- ja ADD-komennoissa. Se toimii samankaltaisesti kuin versionhallintajärjestelmä Gitissä käytettävä .gitignore-tiedosto.
Tärkeimmät syyt .dockerignore-tiedoston käyttöön:
.dockerignore tekee selväksi, mitkä tiedostot ovat (ja eivät ole) osa rakennusprosessia, parantaen ylläpidettävyyttä.Voit tehdä lähes kaiken tarvittavan Docker Desktopilla, mutta voit myös käyttää komentoriviä. Tässä on joitakin komentoja, joista voi olla hyötyä:
Compose on työkalu usean kontin Docker-sovellusten määrittämiseen ja suorittamiseen.
Composen avulla käytät docker-compose.yml-tiedostoa sovelluksesi palveluiden konfiguroimiseen.
Sitten yhdellä komennolla voit rakentaa ja käynnistää koko sovelluspinon.
Dockerfile ---> Docker Image
|
docker-compose.yml --+
|
v
Docker Containers (yksi tai useampi)
Tässä ovat komennot, joita tarvitset
Dockerissa (ja Docker Composessa) -d-lipun lisääminen komentoon suorittaa sen irrotettussa tilassa, eli se suoritetaan taustalla.
Löydät lisää komentoja osoitteesta https://docs.docker.com/engine/reference/commandline/compose_up/Docker Hub (https://hub.docker.com/) on Dockerin tarjoama palvelu kontti-imagien etsimiseen ja jakamiseen.
Se on maailman suurin kontti-imageiden varasto, jossa on sisältöä useista lähteistä, mukaan lukien konttikehittäjäyhteisö, avoimen lähdekoodin projektit ja riippumattomat ohjelmistotoimittajat (ISV), jotka rakentavat ja jakavat koodiaan konteissa.
https://docs.docker.com/docker-hub/
Voit ladata MySQL-imagen Docker Hubista ja käynnistää kontin alla olevilla komennoilla
docker pull mysql:8.1 docker run --name docker_mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:8.1Sitten voit yhdistää MySQL:ään alla olevalla komennolla
docker exec -it docker_mysql mysql -u root -p
Voit myös ladata omia kontti-imageitasi Docker Hubiin, ja sitten voit ottaa ne käyttöön joihinkin pilvipalveluihin. Alla ovat ohjeet, kuinka otetaan käyttöön Docker Hubista Renderiin.
Render ( https://render.com/ ) on yhtenäinen pilvi kaikkien sovellustesi ja verkkosivustojesi rakentamiseen ja ajamiseen.
Voit ottaa sovelluksesi käyttöön Renderissä näin:
Tässä esimerkissä Docker Hub -tili on dh_user. Käyttäjä on tehnyt sovelluksen kuten esimerkissä Node.js-esimerkki. Joten tässä ovat vaiheet sen käyttöönottamiseksi Renderissä.
docker build -t dh_user/imagename:latest polku_dockerfileen/
docker push dh_user/imagename:latest
(*) Docker-imageilla voi olla tageja eri versioiden tunnistamiseen. Jos tagia ei ole määritetty, käytetään oletustagi latest.
Esimerkiksi sekä docker run dh_user/imagename että docker run dh_user/imagename:latest ajavat saman imagen.
Jos haluat määrittää tietyn versiotunnisteen, kuten 1.0, voit rakentaa ja lähettää imagen näin:
docker build -t dh_user/imagename:1.0 polku_dockerfileen/
docker push dh_user/imagename:1.0
Voit konfiguroida Renderin ottamaan imagen automaattisesti käyttöön aina kun lähetät uuden version Docker Hubiin. Voit tehdä sen näin