Erinevus lehekülje "Docker" redaktsioonide vahel

Allikas: Kuutõrvaja
154. rida: 154. rida:
 
https://technologyconversations.com/2016/08/01/integrating-proxy-with-docker-swarm-tour-around-docker-1-12-series/
 
https://technologyconversations.com/2016/08/01/integrating-proxy-with-docker-swarm-tour-around-docker-1-12-series/
  
https://portainer.io/install.html
+
https://www.smartspate.com/overview-gui-interfaces-managing-docker-containers/

Redaktsioon: 29. juuni 2018, kell 01:42

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

Olemas on ka palju keerukamaid dockeri konteinereid. Näiteks konfigureeritud ja valmis LAMPi saab https://github.com/fauria/docker-lamp

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
  • ADD kopeerib varemalt tekitatud index.html faili /srv kausta
  • 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 veebi ja mysqli server tekitame faili docker-compose.yml järgneva sisuga

version: '2' 

services:
  webserver:
    build: ./docker/webserver
    image: runwaytest_web
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /srv/simple-docker/www:/var/www/html
    links: 
     - db
   db:
    image: mysql:5.7
    ports: 
      - "3306:3306"
    volumes:
      - ./db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=docker
      - 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

Docker cluster ehk swarm

Nodes 1

docker-machine create -d virtualbox node-1

Nodes 2

docker-machine create -d virtualbox node-2

Nodes 3

docker-machine create -d virtualbox node-3

eval $(docker-machine env node-1)

docker swarm init \
    --advertise-addr $(docker-machine ip node-1) \
    --listen-addr $(docker-machine ip node-1):2377

TOKEN=$(docker swarm join-token -q worker)

eval $(docker-machine env node-2)

docker swarm join \
    --token $TOKEN \
    $(docker-machine ip node-1):2377

eval $(docker-machine env node-3)

docker swarm join \
    --token $TOKEN \
    $(docker-machine ip node-1):2377

https://technologyconversations.com/2016/08/01/integrating-proxy-with-docker-swarm-tour-around-docker-1-12-series/

https://www.smartspate.com/overview-gui-interfaces-managing-docker-containers/