By | 04/04/2023
Install Docker Portainer dan Nginx Proxy Manager Ubuntu Server

Dalam dunia pengembangan aplikasi, salah satu hal yang menjadi penting adalah mengelola dan memonitor kontainer aplikasi. Docker adalah salah satu platform yang paling populer digunakan untuk mengelola kontainer aplikasi. Namun, mengelola kontainer Docker secara manual dapat menjadi rumit dan memakan waktu.

Untuk membantu mengelola kontainer Docker dengan lebih efisien, banyak pengembang menggunakan alat-alat seperti Nginx Proxy Manager dan Portainer. Nginx Proxy Manager adalah alat open source yang memudahkan pengguna untuk mengelola proxy Nginx dan memetakan host ke kontainer Docker. Sementara Portainer adalah alat pengelolaan kontainer Docker yang mudah digunakan dan memiliki antarmuka pengguna yang intuitif.

Dalam artikel tutorial ini, kita akan membahas cara menggunakan Nginx Proxy Manager dan Portainer untuk mengelola kontainer Docker. Kita akan membahas cara instalasi, konfigurasi, dan penggunaan dari kedua alat tersebut. Selain itu, kita juga akan membahas beberapa kasus penggunaan yang umum dan memberikan contoh praktis mengenai bagaimana menggunakan kedua alat tersebut.

Dengan mengikuti tutorial ini, diharapkan pembaca akan dapat mengelola kontainer Docker dengan lebih efisien dan efektif menggunakan Nginx Proxy Manager dan Portainer. Tutorial ini juga dapat membantu meningkatkan performa website atau aplikasi yang dikembangkan dengan Docker, serta membantu mengoptimalkan penggunaan sumber daya server.

Saat kamu memulai langganan cloud atau vps untuk mendeploy aplikasi secara online biasanya menginstall control panel seperti Plesk, Cpanel, Webuzo dan lain sebagainya, kali ini saya akan membuat cara lain menggunakan docker container.

Menggunakan docker container pada server bisa dibilang meningkatkan keamanan dan kemudahan dalam mendeploy aplikasi pada layanan cloud atau vps, bahkan pada layanan cloud seperti AWS, GCP, Alibabacloud dan Huaweicloud memiliki layanan container sendiri yang didesain untuk memudahkan devops untuk mengatur dan mengelola server.

Sesuai judul kita akan membagi artikel ini untuk instalasi docker, kemudian portainer dan nginx proxy manager.

Docker ini berfungsi sebagai container, secara bahasa sederhananya kita akan menginstall os di dalam os, dan biasanya satu aplikasi akan ditaro dalam satu container.

sedangkan portainer sendiri merupakan alat bantu berupa UI website untuk mengelola docker, selain menggunakan portainer sebenernya sudah cukup dengan CLI, namun bagi pemula yang belum menguasai CLI docker akan kesulitan memahami setiap perintah CLI pada docker.

Persiapan

  • Persiapkan server minimum 1vCPU 2GB dengan OS Ubuntu 18.04 / 20.04 / 22.04, kalo mau pake CentOs silakan tapi saya belum pernah.
  • Supaya lebih aman buat user baru dengan privilege sudo
  • Kalo sudah ada domain lebih baik.

Setting Firewall

$ sudo ufw allow 80
$ sudo ufw allow 443
$ sudo ufw allow 9443
$ sudo ufw allow 81
$ sudo ufw allow "OpenSSH"

80 untuk http, 443 untuk https, 9443 untuk akses portainer dengan ssl, 81 untuk nginx proxy manager admin.

$ sudo ufw enable
$ sudo ufw reload

Install Docker Ubuntu Server

$ sudo apt install ca-certificates curl gnupg lsb-release
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io

Jika sudah selesai melakukan langkah langkah dengan perinta di atas selanjutnya tinggal menjalankan service docker dengan perintah sebagai berikut.

$ sudo systemctl start docker --now

Kita akan menambahkan user sekarang yang sedang masuk ke grup docker

$ sudo usermod -aG docker $USER

Jika sudah selesai selanjutnya saya ingin memudahkan dalam setiap deploy aplikasi menggunakan docker-compose, sehingga kita bisa mudah membuat image sendiri dengan file docker-compose.yaml nantinya.

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

Install Portainer

Untuk memudahkan dalam memanajemen container, volume, image, stack dan yang lainya kita akan install portainer sebagai UI web nya.

$ mkdir ~/portainer
$ cd ~/portainer
$ nano docker-compose.yaml

Sampai sini jika ada command yang gagal akibat permission bisa tambahkan sudo didepanya. atau sebaiknya bisa pelajari lagi tentang command lain di linux ubuntu.

perintah terakhir adalah untuk membuat file docker-compose.yaml, didalam file itu akan kita isi dengan code berikut.

version: "3.8"
services:
    portainer:
      image: portainer/portainer-ce:latest
      container_name: portainer
      restart: always
      privileged: true
      volumes:
        - ./data:/data:Z
        - /var/run/docker.sock:/var/run/docker.sock:Z
      ports:
        - 9443:9443
    app:
      image: 'jc21/nginx-proxy-manager:latest'
      restart: unless-stopped
      ports:
        # These ports are in format <host-port>:<container-port>
        - '80:80' # Public HTTP Port
        - '443:443' # Public HTTPS Port
        - '81:81' # Admin Web Port
        # Add any other Stream port you want to expose
        # - '21:21' # FTP
      environment:
        # Mysql/Maria connection parameters:
        DB_MYSQL_HOST: "db"
        DB_MYSQL_PORT: 3306
        DB_MYSQL_USER: "npm"
        DB_MYSQL_PASSWORD: "npm"
        DB_MYSQL_NAME: "npm"
        # Uncomment this if IPv6 is not enabled on your host
        # DISABLE_IPV6: 'true'
      volumes:
        - ./data:/data
        - ./letsencrypt:/etc/letsencrypt
      depends_on:
        - db
    db:
      image: 'jc21/mariadb-aria:latest'
      restart: unless-stopped
      environment:
        MYSQL_ROOT_PASSWORD: 'npm'
        MYSQL_DATABASE: 'npm'
        MYSQL_USER: 'npm'
        MYSQL_PASSWORD: 'npm'
      volumes:
        - ./mysql:/var/lib/mysql

File diatas bisa kalian simpan dengan ctrl+x kemudian y dan enter pada terminal.

Terakhir tinggal menjalankan command untuk membuild docker-compose diatas dengan perintah.

$ docker-compose up --build -d

Untuk user dan password portainer dibuat saat baru pertama kali buka https://ipaddress:9443 sedangkan untuk nginx proxy manager bisa buka di http://ipaddress:81 email: [email protected] dan password : changeme.

Leave a Reply

Your email address will not be published. Required fields are marked *