–Docker ile WordPress
WordPress ile bir blog alt yapısı oluşturmak gibi bir amacınız var ise bu makaleyi kullanabilirsiniz. İlgili blog alt yapısı için öncelikle ;
Mariadb Wordpress
kullanacağız.
Eğer pardus üzerinde docker kurulumu yazısını okumadı iseniz Pardus Sunucusu Üzerine Docker Kurulumu yazına bakabilirsiniz.
Blog kurulumuna başlayalım.
- Mariadb Container Kurulumu
Docker pull mariadb
Komutu ile mariadb image dosyasını sunucu üzerine indiriyoruz.
akabinde
Docker images
Yada
Docker image ls
Komutlarını kullanarak sunucumuz üzerine daha önce indirilmiş yada şimdi indirdiğimiz image listleri görebiliriz.
Container oluşturmadan önce mariadb için database ve config dosyalarına hızlı bir şekilde ulaşıp müdahalede bulunmak için container tarafındaki database ve config dizinlerini sunucu üzerinde oluşturduğumuz dizinler ile karşılıklı bind edeceğiz. Bunun amacı database dosyalarına ve config edilmek istendiğinde sunucu üzerinde container tarafını organize ve kontrol etmek.
Sudo su -
Komutu ile sunucudan root haklarını alıyorum
mkdir ~/wordpress Cd wordpress Mkdir database Mkdir html
Komutları ile dizinleri oluşturalım.
docker container run -d --name wpdb -e MYSQL_ROOT_PASSWORD=1234+abcd -e MYSQL_USER=idelibalta -e MYSQL_PASSWORD=1234+abcd -e MYSQL_DATABASE=wordpressdb -v $(pwd):/var/lib/mysql mariadb
Komutu ile mariadb contrainer ını oluşturuyoruz.
Docker container ls
Komutu ile çalışan container ları kontrol ediyoruz.
Şimdi buradaki parametrelerini açıklamak gereklirse;
-e MYSQL_ROOT_PASSWORD : mariadb tarafındaki root parolası
-e MYSQL_USER : mariadb tarafında yeni bir user oluşturuyoruz
-e MYSQL_PASSWORD: mariadb tarafında oluşturulan yeni user için parola belirle
-e MYSQ_DATABASE : mariadb tarafında wordpress için kullanılacak database adı
ayrıca farklı olarak -v parametresini kullandık
-v parametresi docker tarafında Volume tanımlamak amacı ile kullanılır. Sunucu üzerindeki bir dizini container tarafındaki bir dizin ile bind etmek ve ilgili dosyalara sunucu üzerinden ulaşabilmek için genelde volume parametresi ile bind işlemi yapılır.
-v $(pws):/var/lib/mysql : $(pwd) bir değişken olarak kullandık. Linux ortamında pwd komutu bulunduğumuz dizini ifade eder. Biz container tarafındaki /var/lib/mysql dizinini sunucu üzerindeki /root/wordpress/database dizini ile bind etmek için bu seti kullandık.
Mariadb container oluştu ve çalışıyor. Şimdi wordpress işlemlerine başlayalım.
- WordPress Container Kurulumu
Docker pull wordpress
Komutu ile image dosyasını sunucu üzerine çekiyoruz.
docker container run -d --name wordpress -e WORDPRESS_DB_USER=idelibalta -e WORDPRESS_DB_PASSWORD=1234+abcd -e WORDPRESS_DB_NAME=wordpressdb -p 8081:80 -v $(pwd):/var/www/html --link wpdb:mysql wordpress
Komutu ile wordpress container ımızı oluşturuyoruz.
Parametreleri açıklamak gerekirse;
-e WORDPRESS_DB_USER : WordPress için oluşturulmuş db user bilgisi
-e WORDPRESS_DB_PASSWORD : WordPress için oluşturulmuş db pass bilgisi
-e WORDPRESS_DB_NAME : WordPress db adı
-p 8081:80 : WordPress port bilgisi. İçeride 8081 dışarıda ise 80 portundan çalışacak
-v $(pwd):/var/www/html : volume bilgisi. Sunucudaki root/wordpress/html dizini ile container tarafındaki /var/www/html dizinini bind ediyoruz
–link : WordPress container ı ile mariadb container nı ilişkilendiriyoruz
-d : deatach modunda çalış. Docker üzerinde bir container oluşturduğunuz zaman eğer -d parametresini kullanmadı iseniz siz container dan çıktıktan sonra container stop olur. -d (deatach) ise container oluştuğunda çalışmaya başlaması için kullanılır.
–name : container ismi
Docker container ls
Komutu ile container durumunu görebiliriz. Şu anda aktif olduklarını ve çalıştıklarını görüyoruz.
Şimdi de hem mariadb hem de wordpress container larını kontrol edelim.
Öncelikli olarak mariadb tarafına bir bakalım.
Docker container exec -it wpdb bash
Komutu ile container içerisine giriş yapalım. Hemen akabinde
Mysql -u (username) -p
Komutu ve arkasından parola girerek mysql yani mariadb tarafına ulaşalım.
Show databases;
Komutu ile database list yapalım.
WordPressdb oluştuğunu ve mariadb tarafının bize cevap verdiğini görüyoruz.
Sonrasında da wordpress tarafını kontrol edelim
Docker container exec -it wordpress bash
Komutu ile wordpress container ına giriş yapalım.
Curl -I 172.17.0.3:8081
Komutu ile http bilgilerini alıyoruz.
Curl, http istemci olarak kullanılan bir komut satırı aracıdır.
Şu an gayet iyi.
Son kontrolümü de şöyle olsun
http://192.168.126.133:8081/wp-admin/install.php (sizde kendi sunucu ip nizi yazınız)
Browser tarafında kontrol ettiğimizde wordpress install aracının geldiğini görüyoruz.
Aslında şu ana kadar yaptıklarımız ile docker ile blog kurulumunu tamamlamış olduk. Ama performans ve caching işlemleri için nginx proxy kullanabiliriz. Öncesinde kullandığımız docker komutlarını ve parametrelerini açıklayalım sonra nginx proxy kurulumuna geçelim.
Oluşturulan docker container içerisine ulaşmak için aşağıdaki komutu kullanabilirsiniz.
Docker container exec -it containeradi bash
-it : i (interactive) t (tty) dir. Tty açıklama gerekirse container ile iletişime geçmemiz için kullanılan konsoldur diye biliriz.
bash docker komutu ile komut satırına inmek istediğimizi bildirdiğimiz komut
Şimdilik süreç tamamlandı.
Bir başka yazıda da Nginx Reverse proxy ile PHP FPM kavramlarına ve yaptığımız bu kuruluma nasıl entegre edilebileceklerine dair bir şeyler paylaşmak istiyorum.
Bir başka yazıda görüşmek dileği ile