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.