Erinevus lehekülje "Docker" redaktsioonide vahel
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:// | + | https://www.smartspate.com/overview-gui-interfaces-managing-docker-containers/ |
Redaktsioon: 29. juuni 2018, kell 01:42
Sisukord
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://www.smartspate.com/overview-gui-interfaces-managing-docker-containers/