Install Docker di Ubuntu 20.04

Install Docker di Ubuntu 20.04

Tutorial kali ini akan membahas bagaimana cara install Docker di Ubuntu 20. Kalau misalnya ada yang tanya kenapa pakai Ubuntu 20, jawabannya adalah untuk docker lebih mudah troubleshoot menggunakan Ubuntu 20. Hal ini karena adanya known issue biasanya sudah banyak cara fix nya ketika mereka menggunakan Ubuntu 20. Jadi harapannya adalah ketika ada issue atau masalah, kita bisa dengan mudah fix.

Update ke versi Latest

Hal pertama yang harus anda lakukan adalah lakukan update ke versi paling akhir, kemudian reboot server tersebut.

apt update -y; apt upgrade -y
reboot

Konsep Docker Binding

Di sini kita membicarakan server standalone tanpa control panel dengan menggunakan KVM. Pada dasarnya docker hampir mirip dengan OpenVZ atau Virtuozzo dimana host OS menyediakan virutalisasi yang bersifat kontainer terhadap guest OS. Bedanya, OpenVZ dan Virtuozzo menyediakan virtualisasi kontainer di level Operating System, sedangkan Docker di level aplikasi.

Setiap docker image yang berhasil di deploy dan di running maka akan membinding 1 port public pada server anda. Namun alangkah baiknya kita melakukan binding pada port di range jauh, misal 10ribu ke atas atau 20ribu ke atas. Jadi nantinya kita akan menggunakan Nginx agar bisa dilakukan reverse proxy dan bisa diakses pada port 80 dan 443 bahkan bisa menggunakan SSL.

Persyaratan Server

Adapun untuk melakukan running docker pada server linux adalah minimal menggunakan 1 GB RAM dan disk adalah 20 GB. Namun rekomendasi adalah 2 GB RAM dan disk minimal 30 GB. Banyaknya ram ditentukan dari aplikasi apa yang ingin di run oleh anda.

Seandainya aplikasi database MySQL berarti anda membutuhkan RAM server minimal 2 GB. Jika ingin run fitur aplikasi LAMP dengan website php html sederhana, rasanya 1 GB ram sudah cukup. dst.

Install Docker

Pertama kita update keyring terlebih dahulu.

mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu 18 $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Kemudian kita update lagi.

apt update

Kemudian kita adjust untuk permission folder keyring.

chmod a+r /etc/apt/keyrings/docker.gpg
apt update

Kemudian memulai install docker daemon.

apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Ketika selesai, maka server anda sudah siap untuk dipasangi dengan docker container.

Docker Hub

Untuk melihat list image docker secara global dari seluruh dunia, bisa di lihat di halaman hub docker.

Install Nginx

Kemungkinan kamu perlu memasang nginx sebagai reverse proxy. Karena docker 1 aplikasi hanya bisa di binding pada 1 port saja. Ketika ada 2 maka tidak bisa di binding pada port yang sama. Oleh karena itu port 80 dan 443 di sisakan untuk menjadi reverse proxy yang nantinya digunakan oleh nginx.

apt install nginx

Konfigurasi Default

Secara default, konfigurasi website nginx berada di folder /etc/nginx/sites-enabled. Dengan demikian, kita bisa mulai dari sini untuk membuat virtualhost website kita. Biasanya untuk menandakan config itu website apa, saya biasa menamai confignya dengan nama websitenya langsung.

Berikut adalah konfigurasi default menggunakan port 80.

server {
  server_name namadomain.com;

  location / {
        proxy_pass http://ip.ip.ip.ip:PORT/;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_buffering off;
    }

}

Sebagai tambahan port pada bagian location / { bisa anda dapatkan dengan cara eksekusi perintah docker ps -a

Kemudian kita sudah oke semua confignya, kita copy ke path yg lain juga.

cp -p /etc/nginx/sites-enabled/namadomain.com /etc/nginx/sites-available

Kemudian tinggak restart nginx.

systemctl restart nginx

Selesai.

Konfigurasi SSL

Tambahan lainnya adalah konfigurasi menggunakan SSL. Dalam hal ini kita menggunakan third party software untuk melakukan generate SSL dan automation renewal SSL. Yaitu adalah certbot.

apt install certbot python3-certbot-nginx

Kemudian untuk generate SSL maka gunakan perintah berikut.

certbot --nginx -d namadomain.com

Kemudian ditunggu dan selesai.

Adapun persyaratan mutlak yang harus dipenuhi adalah sebelum melakukan generate SSL, maka pastikan namadomain.com milik anda sudah mengarah ke IP server docker tersebut. Jika belum, maka SSL tidak dapat di generate.

Kemudian secara otomatis config akan di auto generate oleh certbot.