Docker to świetna platforma do instalacji różnych aplikacji w tzw. kontenerach, czyli w dużym skrócie oddzielnych środowiskach Linuksa (działa do na zasadzie maszyny wirtualnej wbudowanej w kernel Linuksa, kvm. Zatem wydajnościowo i rozmiarami przebija wszystkie inne maszyny wirtualne jak np. Virtualbox). Zapewnia to nam:
  • Bezpieczeństwo - Na wypadek wykrycia bardzo poważnej luki w MyBB, włamujący nie przejdzie do głównego serwera, a będzie ograniczony jedynie do kontenerów jakie są podpięte do forum. Jest to też dobre wyjście np. w hostingach, aby każdy klient miał oddzielone środowisko. Nawet przy roocie nie będzie w stanie dużo zepsuć.
  • Szybkość - Instalacja gotowego środowiska z LAMP to kwestia kilku minut, bo wszystko dzieje się automatycznie.
  • Wygoda - takimi kontenerami bardzo łatwo zarządzać, wystarczy odpowiednio zainstalowane GUI, osobiście korzystam z Docker UI.
Zachęciłem Was? :) No to do dzieła! Osobiście korzystam z OSXa, ale różnice przy Linuksie są minimalne, główna jest taka, że OSX i Windows potrzebują jeszcze Virtualboxa do załadowania kernela Linuksa, w przypadku kiedy korzystamy z pingwinka wszystko działa natywnie.

1 Instalacja Dockera


Pobieramy i instalujemy Dockera. W przypadku Windowsa i OSXa zainstalujemy Docker Toolboxa, który daje nam wszystko czego potrzebujemy. Można pomóc sobie tą stroną. Linux natomiast ma trochę inną metodę, ponieważ potrzebujemy dwóch pakietów i wszystko zależy od tego czy znajdują się one w repozytorium. Te pakiety to docker-engine oraz docker-compose. Przykładowo: Debian 8 posiada tylko docker-engine, zatem musimy wykonać coś takiego:

sudo su
apt-get install docker-engine
curl -L https://github.com/docker/compose/releases/download/1.6.0-rc1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

2 Konfiguracja środowiska dla MyBB


Zainstalowany? To świetnie! Najtrudniejsza rzecz za nami :) Teraz pozostaje nam skonfigurować środowisko dla MyBB. Tworzymy katalog w którym zainstalujemy MyBB, w moim wypadku będzie to ~/Projects/MyBB. Teraz otwieramy twój ulubiony edytor tekstowy (u mnie będzie to vim) i wpisujemy w nim coś takiego:

mybb:
  image: siper/mybb
  links:
    - mybb_db:mysql
  ports:
    - 8080:80
mybb_db:
  image: mariadb
  environment:
    MYSQL_ROOT_PASSWORD: secret
phpmyadmin:
  image: corbinu/docker-phpmyadmin
  links:
    - mybb_db:mysql
  ports:
    - 8181:80
  environment:
    MYSQL_USERNAME: root
    MYSQL_ROOT_PASSWORD: secret

Zapisujemy plik do docker-compose.yml. W tym miejscu musimy się zatrzymać i zmienić niektóre parametry na swoje. 

Cytat:mybb:
  image: siper/mybb
  links:
    - mybb_db:mysql
  ports:
    - 8080:80

Wpisujemy port na którym chcemy by działało forum, w moim wypadku będzie to 8080, ponieważ Dockera konfiguruję do pracy na komputerze, ale w przypadku kiedy instalujemy go na serwerze produkcyjnym możemy bez obaw wpisać po prostu 80.

Cytat:mybb_db:
  image: mariadb
  environment:
    MYSQL_ROOT_PASSWORD: secret
phpmyadmin:
  image: corbinu/docker-phpmyadmin
  links:
    - mybb_db:mysql
  ports:
    - 8181:80
  environment:
    MYSQL_USERNAME: root
    MYSQL_ROOT_PASSWORD: secret

"secret" to nasze hasło do bazy danych jakie ustawiamy. Jako, że ja będę używać forum u siebie na komputerze, po prostu podam takie a nie inne. Ale Ty możesz poprawić je na inne, jeśli używasz Dockera gdzieś indziej. 8181, to port na jakim będzie pracował PHPMyAdmin, którego potrzebujemy do stworzenia bazy danych forum. Potem możesz usunąć ten fragment kodu, jeśli nie chcesz mieć PMA. Wtedy cały kod będzie wyglądał tak:

mybb:
 image: siper/mybb
 links:
   - mybb_db:mysql
 ports:
   - 8080:80
mybb_db:
 image: mariadb
 environment:
   MYSQL_ROOT_PASSWORD: secret

3 Uruchomienie Dockera i instalacja MyBB


Okej! Mamy gotowy config. Co teraz? Wpisujemy docker-compose -d up i czekamy aż zostanie stworzony kontener z MyBB i uruchomiony.
Jak pisałem, dla Windowsa i OSX, Docker został uruchomiony w Virtualboxie, dlatego musimy znać jego adres IP, będzie to 192.168.99.100, dla Linuksa będzie to oczywiście localhost.


Wchodzimy do PhpMyAdmin, w moim wypadku będzie to http://192.168.99.100:8181, tam logujemy się i tworzymy bazę danych dla MyBB:
   

Teraz pozostaje nam wejść i zainstalować MyBB. Wchodzimy do http://192.168.99.100:8080 i instalujemy forum w normalny sposób, dane do bazy danych to będą kolejno:
  • Host: 172.17.0.2
  • User: root
  • Hasło: secret
  • Baza danych: mybb
Gotowe, skonfigurowaliśmy nasze forum w Dockerze :)