Cara Install WordPress dengan Docker Compose di Ubuntu Server
Pengantar
WordPress adalah salah satu CMS (Content Management System) paling populer di dunia yang digunakan untuk membuat website blog, company profile, hingga toko online. Biasanya WordPress diinstal langsung menggunakan web server seperti Apache atau Nginx dengan PHP dan MySQL secara manual.
Namun, seiring berkembangnya teknologi, kini kita bisa menginstal WordPress menggunakan Docker Compose di Ubuntu Server. Metode ini membuat proses instalasi menjadi lebih cepat, rapi, dan mudah dikelola.
Dengan Docker Compose, WordPress dan database (MySQL/MariaDB) dijalankan dalam container terpisah sehingga sistem lebih terorganisir dan minim konflik dependensi.
Artikel ini akan membahas langkah demi langkah cara install WordPress dengan Docker Compose di Ubuntu Server secara lengkap dan mudah dipahami
Alasan menginstall WordPress dengan Docker ?
Menggunakan Docker untuk WordPress memiliki banyak keuntungan, antara lain:
- Instalasi lebih cepat tanpa perlu konfigurasi manual Apache, PHP, dan MySQL satu per satu.
- Lingkungan server lebih konsisten (tidak tergantung versi PHP atau library di sistem).
- Mudah dipindahkan ke server lain.
- Mudah dihapus atau diulang instalasinya.
- Cocok untuk testing, development, maupun production skala kecil-menengah.
- Manajemen container lebih rapi dengan Docker Compose.
Persiapan Sebelum Instalasi
Sebelum mulai instalasi, pastikan kamu sudah menyiapkan:
- Ubuntu Server 20.04 / 22.04 / 24.04
- Akses root atau user dengan sudo
- Koneksi internet stabil
- Domain (opsional, jika ingin diakses lewat domain)
- Port 80 dan 443 terbuka di firewall
Menginstall Docker
Langkah pertama adalah menginstall Docker di Ubuntu Server.
- Update sistem terlebih dahulu:
sudo apt update - Install paket pendukung:
sudo apt install -y ca-certificates curl gnupg lsb-release - Install Docker
sudo curl -fsSL https://get.docker.com | sh - Jalankan dan aktifkan Docker saat boot:
- Gunakan Perintah berikut:
sudo systemctl start dockersudo systemctl enable docker - Kemudian Cek apakah docker sudah aktif :
sudo systemctl status docker
- Gunakan Perintah berikut:
- Cek versi Docker:
docker --version - Agar tidak perlu selalu menggunakan sudo:
Logout lalu login kembali agar perubahan aktif.sudo usermod -aG docker $USER
Konfigurasi Docker Compose
Langkah-langkah untuk menginstall Docker Compose dan menyiapkan project WordPress:
- Install Docker Compose:
sudo apt install -y docker-compose - Cek versi Docker Compose:
docker-compose --version - Buat folder project WordPress:
mkdir wordpress-docker cd wordpress-docker
Instalasi WordPress dengan Docker
Langkah-langkah untuk membuat file `docker-compose.yml` dan menjalankan container:
- Buat file `docker-compose.yml`:
nano docker-compose.yml - Isi dengan konfigurasi berikut:
version: "3.8" services: db: container_name: wordpress_db image: mariadb:10.11 restart: always command: --default-authentication-plugin=mysql_native_password environment: MYSQL_ROOT_PASSWORD: root12345 MYSQL_DATABASE: wordpress_db MYSQL_USER: wordpressuser MYSQL_PASSWORD: wp12345 volumes: - db_data:/var/lib/mysql networks: - wp_network wordpress: container_name: wordpress_app image: wordpress:fpm depends_on: - db restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpressuser WORDPRESS_DB_PASSWORD: wp12345 WORDPRESS_DB_NAME: wordpress_db volumes: - wp_data:/var/www/html - ./php.ini:/usr/local/etc/php/conf.d/custom.ini networks: - wp_network nginx: container_name: wordpress_webserver image: nginx:latest depends_on: - wordpress restart: always ports: - "8080:80" volumes: - ./nginx.conf:/etc/nginx/conf.d/default.conf - wp_data:/var/www/html networks: - wp_network volumes: db_data: wp_data: networks: wp_network: - Membuat File nginx.conf
- Gunakan perintah berikut
nano nginx.conf - Isi dengan konfigurasi berikut:
server { listen 80; server_name _; root /var/www/html; index index.php index.html; client_max_body_size 64M; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { try_files $uri =404; fastcgi_pass wordpress:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\. { deny all; } }
- Gunakan perintah berikut
- Membuat File php.ini
- Gunakan perintah berikut
nano php.ini - isi dengan
upload_max_filesize = 64M post_max_size = 64M memory_limit = 128M
- Gunakan perintah berikut
- Simpan file lalu jalankan container:
docker-compose up -d - Cek apakah container berjalan:
docker psOutput:
Jika berhasil, WordPress sudah aktif di port 80.CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5179596c4a08 nginx:latest "/docker-entrypoint.…" About an hour ago Up About an hour 0.0.0.0:8080->80/tcp, [::]:8080->80/tcp wordpress_webserver 0a0ea3abb92d wordpress:fpm "docker-entrypoint.s…" About an hour ago Up About an hour 9000/tcp wordpress_app c22ad6dc98d5 mariadb:10.11 "docker-entrypoint.s…" About an hour ago Up About an hour 3306/tcp wordpress_db
Instalasi WordPress di Browser
Langkah-langkah untuk menyelesaikan instalasi WordPress:
- Buka browser dan akses:
http://IP_SERVER:8080 -
Pilih bahasa,Kemudian klik Continue

- Langkah instalasi WordPress
:
- Masukkan:
- Site Title
- Username admin
- Password
- Klik Install WordPress
- Masukkan:
- Login ke dashboard WordPress

- WordPress sudah siap digunakan.

Menghubungkan Domain dan Konfigurasi Nginx Reverse Proxy
Jika ingin menggunakan domain:
- Arahkan DNS domain ke IP server
- Buat A record:
Name: @Value: IP_SERVER - Atau subdomain:
blog.domain.com → IP_SERVER - Tunggu propagasi DNS (5–30 menit biasanya)
- Setelah itu, WordPress bisa diakses melalui:
http://domainkamu.com - Cek propagasi DNS bisa menggunakan:
- Perintah ping pada terminal untuk mengecek koneksi ke domain:
ping domainkamu.comCatatan : Pastikan setelah di ping IP mengarah ke IP VPS
- Atau menggunakan web DNS propagation checker seperti:
https://www.whatsmydns.net/
- Atau menggunakan web DNS propagation checker seperti:
- Perintah ping pada terminal untuk mengecek koneksi ke domain:
- Install Nginx di host sebagai reverse proxy:
sudo apt install nginx -y - Buat file konfigurasi:
sudo nano /etc/nginx/conf.d/wordpress.conf - Isi:
server { listen 80; server_name namadomain.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } - Cek dan restart Nginx:
sudo nginx -t sudo systemctl restart nginx
Instalasi dan Konfigurasi SSL
Agar website aman, gunakan SSL (HTTPS). Cara termudah menggunakan Certbot.
- Install Certbot:
sudo apt install -y certbot python3-certbot-nginx - Gunakan Certbot untuk menginstall SSL:
Ikuti instruksi hingga SSL terpasang.sudo certbot --nginx --agree-tos --redirect -d namadomain.com - Agar SSL otomatis diperpanjang, jalankan perintah berikut:
sudo systemctl enable certbot.timer - Pastikan WordPress URL di Settings sudah menggunakan:
Output :https://domainkamu.com
Penutup
Dengan menggunakan Docker Compose, instalasi WordPress di Ubuntu Server menjadi lebih mudah, cepat, dan terstruktur tanpa perlu menginstal Apache, PHP, dan MySQL secara manual, karena semua komponen dijalankan dalam container terpisah. Tutorial ini mencakup cara menginstal Docker dan Docker Compose, membuat konfigurasi untuk WordPress, MariaDB, dan Nginx, serta menghubungkan WordPress ke domain menggunakan Nginx Reverse Proxy dan mengamankan website dengan SSL dari Let’s Encrypt (Certbot). Metode ini sangat cocok untuk berbagai kebutuhan, mulai dari website pribadi, blog, company profile, project testing, hingga production skala kecil dan menengah. Keuntungan utama penggunaan Docker adalah kemudahan dalam maintenance, backup, dan migrasi server tanpa memerlukan konfigurasi ulang.


