Kom igång med Docker och GleSYS Fillagring

Inledning

GleSYS fillagringtjänst är en enkel och stabil lösning för att lagra beständig (persistent) data i Docker. Tack vare att Docker volumes enkelt kan använda NFS om det finns installerat på docker-workern så är du igång på nolltid.

Instruktioner

Börja med att skapa dina workers i GleSYS Cloud och ge dem access till fillagringen. Det är viktigt att alla dina workers där dina Docker-containrar ska ligga, kan komma åt lagringsvolymen. Du behöver inte montera filsystemen på servrarna.

I den här guiden använder vi vår Docker-machine driver.

Börja med att förbereda dina dockerhostar genom att köra:

apt-get update 
apt-get install nfs-common

Logga in på en host och prova att skapa en Docker volume

docker volume create --driver local \
    --opt type=nfs \
    --opt o=addr=[FQDN],rw,vers=4.2 \
    --opt device=:/dpool/nfs \
    NfsVolume3

För att testa så att din volym fungerar kör:

docker run -it -v NfsVolume:/mnt/nfs:nocopy bash

Det här kommer att montera volymen du skapade tidigare “NfsVolume” på /mnt/nfs i din container och starta en image med bash på. nocopy ser till att inte innehållet i sökvägen i containern kopieras till ditt share vid varje start. Läs mer om delat filsystem i Docker.

För att verifiera att du kan skriva till fillagringen kan du köra:

touch /mnt/nfs/testfil

Stäng sedan ner din image med exit och starta den igen med

docker run -it -v NfsVolume:/mnt/nfs bash

om du nu kör ls -la /mnt/nfs så bör du få se din fil

bash-4.4# ls -la /mnt/nfs/testfil
-rw-r--r--    1 nobody   nobody           0 May 15 07:52 /mnt/nfs/testfil

Nu när vi vet att det fungerar så kan vi börja använda volymen i docker-compose. I vårt exempel använder vi mysql:latest från Dockerhub.

Börja med att skapa en mapp för din MySQL-data och ändra rättigheterna på den så att MySQL-imagen fungerar, du kommer troligen vilja justera den innan du tar den i produktion, men för demosyfte fungerar detta.

docker run -it -v NfsVolume:/mnt/nfs bash
mkdir /mnt/nfs/mysql-data

Skapa en docker-compose.yml med nedan innehåll, byt FQDN till FQDN för din fillagring:

version: '3.4'

 volumes:
  mysql_data:
    driver: local
    driver_opts:
      type: nfs
      o: addr=[FQDN],rw,vers=4.2
      device: ":/dpool/nfs/mysql-data"
services:
  mysql:
    image : mysql
    deploy:
      replicas: 1 #Bara en replica för att undvika krockar
    environment:
     MYSQL_ROOT_PASSWORD: password
    volumes:
      - type: volume
        source: mysql_data
        target: /var/lib/mysql
        volume:
          nocopy: true #Om du inte anger nocopy kommer innehållet i containern att kopieras över till volymen och det vill du nog inte.

Deploya detta med:

docker stack deploy DockerizedApplication --compose-file docker-compose.yml

Kolla så att allt funkar med:

docker service logs -f DockerizedApplication_mysql

Svårare än såhär är det inte att komma igång med GleSYS Fillagring och Docker.

Läs mer om GleSYS Fillagring

Hittar du inte det du söker?

Kontakta oss gärna för mer information. Vi hjälper dig att komma fram till den bästa lösningen för dina behov.

Skicka e-post Ring 0200-23 88 00