Docker – czyli jak konfigurowałem nowego VPSa

Ostatnio nosiłem się z chęcią wymiany mojego VPSa na coś trochę szybszego i z nowszą konfiguracją, ale skutecznie zniechęcała mnie do tego myśl, że będę musiał konfigurować wszystkie usługi od zera. Szkoda mi było na to czasu i nie miałem do końca chęci.
Jednakże jednym z celów, jakie przed sobą postawiłem, było zapoznanie się z Dockerem, więc takie przenosiny kilku usług to byłby idealny test i pole do nauki. Od podjęcia decyzji, że to właśnie teraz do przeniesienia wszystkich potrzebnych mi rzeczy na nowy VPS minęły dwa popołudnia, a sprawa okazała się banalnie prosta!
Nie oszukujmy się, przenoszenie serwera to jednak mały projekt, więc warto mieć na niego plan. Pierwszym punktem było określenie co w ogóle mam obecnie uruchomionego, co mi się przyda, a co należy porzucić.
Podchodząc niezbyt sentymentalnie do sprawdzenia, co na serwerze piszczy do przenosin zakwalifikowały się:
- ten blog i domena
- system do obstawiania wyników meczów
- baza mysql
- phpmyadmin, bo jakoś mi najwygodniej
Dodatkowo wymyśliłem sobie, że chce mieć swój system zgłoszeń, a wybór padł na redmine, po zasięgnięciu języka dodałem do tego traefika, który ogarnia certyfikaty SSL, domeny i subdomeny.
Konfigurację serwera rozpocząłem od instalacji dockera i docker-composera. Tak, żeby łatwo zarządzało się tym, co chcę zrobić.
Na pierwszy rzut poszła baza danych, bo jest wykorzystywana przez wszystkie aplikacje, które będę instalował. Zwykle wygląda to tak, że trzeba zainstalować mysqla, dodać jakieś paczki zależne, plus chwilkę poklikać w konfiguracji. A jak to działa, gdy chcemy użyć Dockera? A no tak:
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
W jednej komendzie wpisujemy, co chcemy zainstalować, dorzucamy hasło na roota i po kilku chwilach mamy gotowy kontener z mysql.
Kolejnym punktem był traefik, który miał nasłuchiwać dockera i jego kontenerów oraz zarządzać domenami i połączeniami do nich. Plus tego narzędzia to generowanie certyfikatów SSL dla każdej subdomeny. Traefik robi to sam i bez zbędnej pomocy, wystarczy odpowiednio wypełnić plik konfiguracyjny.
Po uporaniu się ze wpisaniem 3 komend pozostało zainstalować, to co będzie używane, czyli kontenery z wordpressem, redmine i phpmyadminem, To też nie było super skomplikowanym zadaniem, wystarczyło pamiętać, że jeśli aplikacja chce się komunikować z bazą danych, musi być w jednej dockerowej sieci.
Bardzo fajną rzeczą, jaką umożliwia Docker, jest trzymanie plików poza kontenerem, dzięki czemu bazę mysql lub pliki z grafikami z tego bloga mogę mieć fizycznie na dysku. Jeśli kontener z wordpressem się w jakiś sposób rozwali, to w dalszym ciągu mam pliki z grafikami lokalnie. To samo tyczy się bazy danych.
Po wstępnej zabawie z puszczaniem komend z linii poleceń postanowiłem przerzucić to do pliku i uruchamiać kontenery poprzez docker-composera. W momencie, jeśli w konfiguracji zajdzie jakaś zmiana docker przebuduje automatycznie kontener, a wszystko jest ładne i czytelne.
Podsumowując, przeniesienie wszystkich usług, z których korzystałem obecnie i dodanie kilku nowych przy posiadaniu podstawowej wiedzy o Dockerze zajmuje mniej niż 2-3h, jest wygodne, przyjemne, a gdy działa sprawia dużo frajdy!
Najnowsze komentarze