Erinevus lehekülje "Docker" redaktsioonide vahel

Allikas: Kuutõrvaja
(Konteineri loomine docker-compose abil)
(Konteineri loomine docker-compose abil)
72. rida: 72. rida:
 
Nagu näha on localhosti port 32770 suunatud konteineris 80 pordile.
 
Nagu näha on localhosti port 32770 suunatud konteineris 80 pordile.
  
===Konteineri loomine docker-compose abil===
+
===Konteinerite loomine docker-compose abil===
  
Pakett docker-compose pakub märksa mugavamat süntaksit konteinerite loomisel, paigaldamiseks
+
Compose on töövahend, millega saab defineerida ja luua multi-conteinerilisi dockeri rakendusi. Paigaldamiseks
  
 
  # apt-get install docker-compose
 
  # apt-get install docker-compose
  
Tekitame kausta faili docker-compose.yml järgneva sisuga
+
Selleks, et luua lihtne mysql server tekitame faili docker-compose.yml järgneva sisuga
  
 
   mysql:
 
   mysql:

Redaktsioon: 27. juuni 2018, kell 17:40

Paigaldus ubuntus/debianis

Dockeri paigaldamiseks ubuntu/debiani serveris

# apt-get install docker.io

Laadime alla konteineris kasutamiseks mõeldud ubuntu

# docker pull ubuntu

Peale tõmbamise lõpetamist paigaldatakse see images alla, näha saame seda järgneva käsuga

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              113a43faa138        2 weeks ago         81.2MB

Saame näiteks selle sees oleva bashi käivitada ja käsureal ringi vaadata või sinna täiendavaid pakette paigaldada

# docker run -t -i ubuntu:latest /bin/bash

Tõmmata saab ka juba eelkonfigureeritud tarkvaraga dockeri konteinereid. Näiteks tõmbame mysql serveri ja paneme selle käima

docker pull mysql
docker run -d --name=mysql1 -e MYSQL_ROOT_PASSWORD=’mypassword’ -v /storage/mysql1/mysql-datadir:/var/lib/mysql mysql

Lisaks saab tõmmata ka kindlaid mysql versioone

docker pull mysql:5.6

Omaenda konteineri loomine

Konteineri loomine toimub failis Dockerfile olevate käsurea käskude alusel. Näiteks tekitame lihtsa konfi, mis tekitab meile eelmises lõigus allatõmmatud ubuntu image alusel apache veebiserveri, kus serveerib etteantud index.html faili

FROM ubuntu:latest
RUN apt-get update && apt-get install -y apache2
RUN mkdir -p /srv && rm -fr /var/www/html && ln -s /srv /var/www/html
EXPOSE 80
ADD index.html /srv/
WORKDIR /srv
ENTRYPOINT ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]

Käsud lahtiseletatult:

  • FROM seadistab ära mis imaget me aluseks kasutame
  • RUN võimaldab käivitada enda järele kirjutatud käske
  • EXPOSE teeb pordi 80 meile nähtavaks
  • WORKDIR määrab kasutaja kataloogi
  • ENTRYPOINT seadistab ära teenuse, mis konteineris tööle läheb

Ehitame loodud konfi alusel konteineri valmis, selleks anname samas kaustas kus dockerfail järgneva käsu

docker build -t test:test .

Kui protsess lõppes peaksime seda ka images alt nägema

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
test                test                364cac645fcc        2 minutes ago       223MB
ubuntu              latest              113a43faa138        2 weeks ago         81.2MB

Paneme konteineri tööle

# docker run -d -P test:test

Töötavaid konteinereid näeme järgnevalt

# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                     NAMES
5b9850b98a29        test:test           "/usr/sbin/apache2ct…"   12 seconds ago      Up 11 seconds       0.0.0.0:32770->80/tcp   sleepy_carson

Nagu näha on localhosti port 32770 suunatud konteineris 80 pordile.

Konteinerite loomine docker-compose abil

Compose on töövahend, millega saab defineerida ja luua multi-conteinerilisi dockeri rakendusi. Paigaldamiseks

# apt-get install docker-compose

Selleks, et luua lihtne mysql server tekitame faili docker-compose.yml järgneva sisuga

 mysql:
     image: mysql:latest
     expose:
         - 3306
     volumes:
         - database_data:/var/lib/mysql
     environment:
         MYSQL_ROOT_PASSWORD: secret
         MYSQL_DATABASE: project
         MYSQL_USER: project
         MYSQL_PASSWORD: project

Loome selle alusel dockeri ja paneme selle tööle

# docker-compose up -d

Veendumine, et hakkas tööle

# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                    NAMES
20eaa3976bc9        mysql:latest        "docker-entrypoint.s…"   2 minutes ago       Up 2 minutes        3306/tcp