Cara Install Docker di Ubuntu: Panduan Lengkap Step-by-Step

Cara Install Docker di Ubuntu: Panduan Lengkap Step-by-Step

Cara Install Docker di Ubuntu sebenarnya tidak terlalu sulit, terutama jika Anda menggunakan Ubuntu versi yang masih didukung dan mengikuti repository resmi Docker. Pada panduan ini, proses instalasi dilakukan menggunakan Docker Engine melalui repository resmi Docker, bukan paket lama dari repository Ubuntu. Metode ini membuat instalasi dan pembaruan Docker lebih mudah dikelola melalui apt.

Docker banyak digunakan oleh developer, sysadmin, DevOps, maupun pemilik server untuk menjalankan aplikasi dalam lingkungan yang terisolasi. Jika Anda baru mengenal Docker, memahami konsep dasarnya juga penting karena setelah Docker berhasil dipasang, Anda dapat menggunakannya untuk menjalankan database, website, API, aplikasi Node.js, PHP, Laravel, WordPress, hingga berbagai service lain tanpa memasang seluruh dependensinya langsung ke sistem Ubuntu.

Docker Adalah Apa?

Docker adalah platform containerization yang memungkinkan aplikasi beserta dependensi yang dibutuhkan untuk dijalankan dalam sebuah container. Docker Engine sendiri terdiri dari daemon dockerd, Docker API, dan Docker CLI yang digunakan untuk berinteraksi dengan daemon tersebut. Docker Engine kemudian mengelola berbagai objek seperti image, container, network, dan volume.

Berbeda dengan virtual machine yang biasanya menjalankan sistem operasi lengkap di setiap instance, container berbagi kernel sistem operasi host. Karena itu, container umumnya lebih ringan dan dapat dibuat, dihentikan, dipindahkan, serta dihapus dengan cepat.

Dalam praktiknya, developer dapat membuat aplikasi di laptop, mengemasnya menjadi Docker image, lalu menjalankannya sebagai container di server Ubuntu dengan lingkungan yang relatif konsisten.

Panduan ini menggunakan Docker Engine dari repository resmi Docker. Saat ini Docker mendukung Ubuntu 26.04 LTS, 25.10, 24.04 LTS, dan 22.04 LTS untuk Docker Engine, dengan dukungan beberapa arsitektur seperti amd64, arm64, armhf, s390x, dan ppc64le.

Catatan: Panduan ini berfokus pada Docker Engine untuk Ubuntu Server atau Ubuntu Desktop. Docker Desktop merupakan produk berbeda yang memiliki proses instalasi tersendiri.

Baca Juga: Docker Adalah: Pengertian, Fungsi, Kelebihan dan Kekurangan

Prerequisites Sebelum Install Docker

Sebelum memulai docker tutorial ini, pastikan Anda sudah memiliki server atau komputer dengan Ubuntu yang didukung.

Beberapa hal yang perlu dipersiapkan:

  • Ubuntu 22.04 LTS atau versi yang lebih baru dan didukung
  • Akses terminal
  • User dengan hak sudo
  • Koneksi internet
  • Storage yang cukup untuk image dan container
  • Arsitektur sistem yang didukung Docker

Untuk mengetahui versi Ubuntu yang sedang digunakan, jalankan:

lsb_release -a

Atau:

cat /etc/os-release

Untuk melihat arsitektur sistem:

dpkg --print-architecture

Jika hasilnya amd64 atau arm64, Anda berada pada arsitektur yang umum digunakan dan didukung Docker. Docker juga menyediakan dukungan untuk beberapa arsitektur lainnya.

Periksa resource server

Jika Docker akan digunakan pada VPS, sebaiknya periksa resource terlebih dahulu:

free -h

Untuk storage:

df -h

Dan untuk melihat informasi CPU:

lscpu

Perlu diingat, Docker sendiri relatif ringan, tetapi kebutuhan resource sebenarnya akan bergantung pada container yang dijalankan. Menjalankan satu website sederhana tentu berbeda dengan menjalankan database, web server, Redis, monitoring, dan beberapa aplikasi secara bersamaan.

Update System Package Ubuntu

Langkah pertama adalah memperbarui package index Ubuntu.

Jalankan:

sudo apt update

Kemudian Anda dapat melakukan upgrade package:

sudo apt upgrade -y

Langkah ini membantu memastikan sistem menggunakan daftar package terbaru sebelum repository Docker ditambahkan.

Setelah itu, instal package yang dibutuhkan untuk menambahkan repository Docker:

sudo apt install ca-certificates curl -y

Docker sendiri menggunakan repository apt resmi untuk menyediakan Docker Engine dan komponen terkait. Dokumentasi resmi Docker merekomendasikan metode repository ini untuk instalasi pada Ubuntu.

Hapus Paket Docker Lama Jika Ada

Jika sebelumnya Anda pernah memasang Docker melalui repository Ubuntu atau metode lain, sebaiknya periksa dan hapus package yang berpotensi konflik.

Docker mencantumkan beberapa package yang perlu dihapus sebelum memasang versi resmi, termasuk:

  • docker.io
  • docker-compose
  • docker-compose-v2
  • docker-doc
  • docker-buildx
  • podman-docker
  • containerd
  • runc

Anda dapat menjalankan:

sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc | cut -f1)

Jika package tersebut belum pernah dipasang, Ubuntu dapat memberikan pesan bahwa tidak ada package yang perlu dihapus. Itu bukan masalah.

Penting: menghapus package Docker dengan perintah tersebut tidak otomatis berarti seluruh image, container, volume, dan data Docker di /var/lib/docker/ ikut terhapus.

Tambahkan Repository Resmi Docker

Sekarang masuk ke bagian utama cara install Docker di Ubuntu.

Pertama, buat direktori untuk menyimpan keyring:

sudo install -m 0755 -d /etc/apt/keyrings

Kemudian download GPG key resmi Docker:

sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

Atur permission agar dapat dibaca oleh apt:

sudo chmod a+r /etc/apt/keyrings/docker.asc

Selanjutnya, tambahkan repository Docker:

sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

Setelah repository ditambahkan, update kembali package index:

sudo apt update

Perintah tersebut menggunakan codename Ubuntu yang terdeteksi dari sistem sehingga repository dapat disesuaikan dengan versi Ubuntu yang digunakan. Metode ini merupakan prosedur yang saat ini ditunjukkan dalam dokumentasi resmi Docker.

Install Docker Engine

Setelah repository berhasil ditambahkan, Docker Engine dapat dipasang bersama komponen pendukungnya.

Jalankan:

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Ada beberapa package penting dalam perintah tersebut:

PackageFungsi
docker-ceDocker Engine
docker-ce-cliDocker Command Line Interface
containerd.ioContainer runtime
docker-buildx-pluginBuild image dengan BuildKit
docker-compose-pluginDocker Compose

Docker secara resmi merekomendasikan pemasangan komponen tersebut melalui repository Docker.

Setelah proses instalasi selesai, Docker Engine biasanya sudah berjalan sebagai service.

Cek Status Docker

Untuk memastikan Docker berjalan, gunakan:

sudo systemctl status docker

Jika status menunjukkan:

active (running)

berarti Docker Engine sudah berjalan.

Jika Docker belum aktif, jalankan:

sudo systemctl start docker

Anda juga dapat memastikan Docker aktif ketika server melakukan boot:

sudo systemctl enable docker.service
sudo systemctl enable containerd.service

Pada Ubuntu, service Docker umumnya sudah dikonfigurasi untuk berjalan saat boot setelah instalasi package. Dokumentasi Docker juga menyediakan konfigurasi systemd tersebut sebagai bagian dari post-installation.

Cek Versi Docker

Sekarang periksa apakah Docker CLI sudah dapat digunakan:

docker --version

Untuk mendapatkan informasi yang lebih lengkap:

sudo docker version

Anda juga dapat melihat informasi konfigurasi Docker:

sudo docker info

Jika command tersebut memberikan informasi mengenai Docker Engine, container runtime, storage driver, dan konfigurasi lainnya, berarti instalasi berhasil.

Test Instalasi Docker dengan Hello World

Jangan langsung menganggap instalasi berhasil hanya karena command docker --version dapat dijalankan.

Cara yang lebih baik adalah menjalankan container resmi hello-world.

Gunakan:

sudo docker run hello-world

Docker akan mengambil image hello-world jika image tersebut belum tersedia secara lokal, kemudian menjalankan container berdasarkan image tersebut. Jika berhasil, Docker akan menampilkan pesan konfirmasi dan container akan berhenti setelah selesai.

Anda dapat melihat image yang sudah tersimpan:

sudo docker images

Untuk melihat container:

sudo docker ps -a

Jika container hello-world muncul dalam daftar, Docker sudah berhasil digunakan untuk membuat dan menjalankan container.

Konfigurasi Docker agar Tidak Perlu Menggunakan sudo

Secara default, Docker daemon menggunakan Unix socket yang dimiliki oleh root. Karena itu, user biasa perlu menjalankan command Docker dengan sudo. Docker menyediakan opsi untuk menambahkan user ke group docker.

Tambahkan user yang sedang digunakan:

sudo usermod -aG docker $USER

Kemudian logout dan login kembali.

Alternatifnya, Anda dapat menjalankan:

newgrp docker

Setelah itu coba:

docker run hello-world

Jika berhasil tanpa sudo, konfigurasi user sudah bekerja.

Catatan keamanan

Bagian ini penting jika Docker digunakan pada VPS atau server production.

Keanggotaan pada group docker memberikan akses yang sangat tinggi terhadap Docker daemon. Dokumentasi Docker memperingatkan bahwa akses terhadap Docker daemon pada dasarnya dapat memberikan kemampuan yang setara dengan akses root pada host.

Karena itu, jangan sembarangan menambahkan user ke group docker, terutama pada server yang digunakan banyak orang.

Baca Juga: Ubuntu Adalah: Pengertian, Fungsi, Jenis

Install Docker Compose di Ubuntu

Setelah Docker Engine terpasang, Anda mungkin membutuhkan Docker Compose.

Docker Compose digunakan untuk mendefinisikan dan menjalankan aplikasi yang terdiri dari beberapa service.

Misalnya sebuah aplikasi membutuhkan:

  • Nginx
  • PHP
  • MySQL
  • Redis

Daripada menjalankan dan mengatur masing-masing container secara manual, Anda dapat mendefinisikan service tersebut dalam satu file Compose.

Pada Docker versi modern, Docker Compose digunakan melalui:

docker compose

bukan command lama:

docker-compose

Docker menyediakan Docker Compose sebagai plugin untuk Linux. Jika Docker Engine dipasang menggunakan repository resmi seperti pada panduan ini, package docker-compose-plugin juga sudah dapat dipasang bersamaan dengan Docker Engine.

Untuk memastikan Compose tersedia:

docker compose version

Jika belum tersedia, jalankan:

sudo apt update
sudo apt install docker-compose-plugin -y

Kemudian periksa kembali:

docker compose version

Dokumentasi Docker saat ini merekomendasikan Compose plugin untuk Linux. Instalasi standalone merupakan metode legacy yang dipertahankan terutama untuk kompatibilitas dan tidak menjadi pilihan utama.

Docker Tutorial: Menjalankan Nginx dengan Docker

Setelah Docker dan Docker Compose terpasang, mari mencoba contoh sederhana.

Pertama, buat container Nginx:

docker run -d \
  --name nginx-test \
  -p 8080:80 \
  nginx

Penjelasan command tersebut:

  • docker run menjalankan container baru
  • -d menjalankan container di background
  • --name nginx-test memberikan nama container
  • -p 8080:80 memetakan port 8080 host ke port 80 container
  • nginx adalah image yang digunakan

Periksa container:

docker ps

Jika server dapat diakses melalui browser, buka:

http://IP-SERVER:8080

Anda seharusnya melihat halaman default Nginx.

Untuk menghentikan container:

docker stop nginx-test

Untuk menghapusnya:

docker rm nginx-test

Contoh Docker Compose untuk Aplikasi Web

Sekarang kita gunakan Docker Compose untuk membuat service Nginx.

Buat direktori project:

mkdir docker-demo
cd docker-demo

Buat file:

nano compose.yaml

Isi dengan:

services:
  nginx:
    image: nginx:latest
    container_name: nginx-demo
    ports:
      - "8080:80"
    restart: unless-stopped

Simpan file tersebut.

Kemudian jalankan:

docker compose up -d

Periksa container:

docker compose ps

Jika service berjalan, Anda dapat mengakses:

http://IP-SERVER:8080

Untuk melihat log:

docker compose logs

Untuk menghentikan aplikasi:

docker compose down

Perintah docker compose up -d akan membuat dan menjalankan service yang didefinisikan dalam file Compose. Sementara docker compose down menghentikan dan menghapus resource yang dibuat oleh Compose sesuai konfigurasi project.

Command Docker Dasar yang Perlu Diketahui

Setelah mengikuti docker tutorial ini, beberapa command berikut akan sangat sering digunakan.

Melihat container yang sedang berjalan

docker ps

Melihat seluruh container

docker ps -a

Melihat image

docker images

Menjalankan container

docker run IMAGE

Menghentikan container

docker stop NAMA_CONTAINER

Menjalankan kembali container

docker start NAMA_CONTAINER

Menghapus container

docker rm NAMA_CONTAINER

Menghapus image

docker rmi IMAGE

Melihat log

docker logs NAMA_CONTAINER

Masuk ke dalam container

docker exec -it NAMA_CONTAINER bash

Tidak semua image menyediakan bash. Jika tidak tersedia, Anda dapat mencoba:

docker exec -it NAMA_CONTAINER sh

Memahami command dasar ini akan memudahkan Anda ketika mulai mengelola aplikasi menggunakan Docker di VPS.

Masalah yang Sering Terjadi Setelah Install Docker

Permission denied pada Docker socket

Jika muncul error seperti:

permission denied while trying to connect to the Docker daemon socket

biasanya user belum memiliki akses ke Docker socket.

Pastikan user sudah masuk group Docker:

sudo usermod -aG docker $USER

Kemudian logout dan login kembali atau gunakan:

newgrp docker

Jika sebelumnya menjalankan Docker dengan sudo, direktori ~/.docker juga dapat memiliki ownership yang salah. Docker menyediakan langkah perbaikan ownership dan permission untuk kasus tersebut.

Docker service tidak berjalan

Cek:

sudo systemctl status docker

Jika tidak aktif:

sudo systemctl start docker

Untuk melihat log service:

sudo journalctl -u docker --no-pager

Port sudah digunakan

Misalnya Anda menjalankan:

docker run -p 8080:80 nginx

tetapi port 8080 sudah digunakan.

Periksa proses yang menggunakan port:

sudo ss -tulpn | grep :8080

Kemudian gunakan port lain:

docker run -d \
  --name nginx-test \
  -p 8081:80 \
  nginx

Perhatikan Firewall dan Port Docker

Jika Docker digunakan pada server production, bagian firewall tidak boleh diabaikan.

Docker memberikan peringatan bahwa port container yang dipublish dapat berinteraksi dengan aturan firewall tertentu. Pada Ubuntu yang menggunakan UFW atau firewalld, published container ports dapat melewati aturan firewall tersebut dalam kondisi tertentu. Docker juga menyatakan bahwa firewall rules yang dibuat dengan nft secara langsung tidak didukung untuk skenario tersebut dan merekomendasikan penggunaan iptables atau ip6tables serta chain DOCKER-USER untuk filtering yang sesuai.

Karena itu, jangan asal membuka banyak port container ke internet.

Misalnya, jika database MySQL hanya dibutuhkan oleh aplikasi yang berada dalam Docker network, Anda tidak selalu perlu melakukan:

ports:
  - "3306:3306"

Mengekspos database secara langsung ke internet dapat meningkatkan risiko keamanan.

Tips Menggunakan Docker di VPS Production

Setelah berhasil mengikuti cara install Docker di Ubuntu, penggunaan Docker untuk production membutuhkan beberapa perhatian tambahan.

Gunakan image yang terpercaya

Hindari mengambil image secara sembarangan. Periksa sumber image, dokumentasi, versi, aktivitas pemeliharaan, dan security update.

Hindari menggunakan tag latest untuk deployment penting

Untuk development, latest memang praktis. Namun untuk production, penggunaan versi yang lebih spesifik dapat membuat deployment lebih konsisten.

Contohnya:

image: nginx:1.28

dibanding:

image: nginx:latest

Jangan menyimpan data penting hanya di dalam container

Container dapat dihapus dan dibuat kembali. Data penting seperti database sebaiknya menggunakan volume atau storage persisten.

Perhatikan log

Docker mencatat log container dan konfigurasi default tertentu dapat menyebabkan file log terus bertambah. Docker menyebut kondisi tersebut dapat menghabiskan storage host jika tidak dikendalikan. Salah satu pendekatan adalah menggunakan log rotation atau logging driver yang sesuai.

Lakukan backup

Docker bukan sistem backup.

Jika aplikasi menggunakan database, lakukan backup database secara rutin dan simpan salinannya di lokasi yang berbeda dari server utama.

Baca Juga: Apa Itu Kubernetes? Pengertian, Cara Kerja, Manfaat, dan Tutorial Dasarnya

Kesimpulan

Cara install Docker di Ubuntu dapat dilakukan dengan relatif mudah menggunakan repository resmi Docker. Alurnya dimulai dari memastikan versi Ubuntu kompatibel, memperbarui system package, menghapus package Docker yang berpotensi konflik, menambahkan GPG key dan repository resmi, kemudian memasang Docker Engine beserta Docker CLI, containerd, Buildx, dan Docker Compose plugin.

Setelah instalasi selesai, jangan lupa melakukan pengujian menggunakan:

sudo docker run hello-world

Anda juga dapat mengonfigurasi user agar dapat menjalankan Docker tanpa sudo, tetapi perlu memahami konsekuensi keamanannya karena akses terhadap Docker daemon memiliki hak istimewa yang tinggi.

Untuk kebutuhan yang lebih kompleks, Docker Compose menjadi langkah berikutnya yang penting. Dengan Compose, beberapa service seperti Nginx, PHP, MySQL, Redis, dan aplikasi dapat didefinisikan dalam satu file sehingga deployment dan pengelolaannya menjadi lebih terstruktur.

Jika Docker digunakan pada VPS production, instalasi hanyalah tahap awal. Keamanan port, firewall, image, volume, backup, logging, update, dan pengelolaan secret perlu diperhatikan sejak awal.

Jalankan Docker di cloud lokal mulai Rp165 ribuan per bulan dengan Intel Processor, hingga 4 Core CPU, hingga 4 GB RAM, dan hingga 100 GB Storage. Cocok untuk website, database, aplikasi, hingga Docker Compose. Butuh resource lebih besar atau konfigurasi khusus? Spesifikasi cloud juga bisa di-custom sesuai kebutuhan Anda.

FAQ

Docker adalah apa?

Docker adalah platform containerization untuk membangun, mengemas, dan menjalankan aplikasi dalam container. Docker Engine menyediakan daemon dan CLI untuk mengelola image, container, network, dan volume.

Apakah Docker bisa diinstall di Ubuntu?

Ya. Docker Engine secara resmi mendukung beberapa versi Ubuntu, termasuk Ubuntu 26.04 LTS, 25.10, 24.04 LTS, dan 22.04 LTS pada dokumentasi Docker saat ini.

Bagaimana cara install Docker di Ubuntu?

Cara yang direkomendasikan adalah menambahkan repository resmi Docker, kemudian memasang docker-ce, docker-ce-cli, containerd.io, docker-buildx-plugin, dan docker-compose-plugin menggunakan apt.

Apa perbedaan Docker Engine dan Docker Desktop?

Docker Engine merupakan teknologi containerization yang menjalankan daemon Docker dan tersedia secara native pada Linux. Docker Desktop merupakan aplikasi yang mengemas Docker Engine, CLI, Compose, dan berbagai komponen tambahan dalam pengalaman desktop. Docker menyediakan instruksi instalasi terpisah untuk Docker Desktop di Ubuntu.

Apa itu Docker Compose?

Docker Compose adalah tool yang digunakan untuk mendefinisikan dan menjalankan aplikasi yang terdiri dari beberapa container atau service. Pada Linux modern, Docker Compose tersedia sebagai CLI plugin dan digunakan dengan command docker compose.

Apakah Docker Compose harus diinstall terpisah?

Tidak selalu. Jika Docker Engine dipasang menggunakan repository resmi dengan package docker-compose-plugin, Docker Compose dapat dipasang bersamaan dengan Docker Engine. Jika belum tersedia, plugin dapat dipasang menggunakan apt.

Bagaimana cara mengecek Docker sudah berhasil diinstall?

Gunakan:
docker --version
Kemudian lakukan pengujian:
sudo docker run hello-world
Jika container hello-world berhasil dijalankan dan menampilkan pesan konfirmasi, instalasi Docker Engine berhasil.

Apakah Docker gratis?

Docker Engine merupakan proyek open source. Namun, Docker memiliki berbagai produk dan layanan dengan ketentuan lisensi yang berbeda. Docker Desktop juga memiliki ketentuan subscription tertentu untuk penggunaan komersial pada organisasi besar.

Bagikan Artikel:

Leave a Reply

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *