
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.iodocker-composedocker-compose-v2docker-docdocker-buildxpodman-dockercontainerdrunc
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:
| Package | Fungsi |
|---|---|
docker-ce | Docker Engine |
docker-ce-cli | Docker Command Line Interface |
containerd.io | Container runtime |
docker-buildx-plugin | Build image dengan BuildKit |
docker-compose-plugin | Docker 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 runmenjalankan container baru-dmenjalankan container di background--name nginx-testmemberikan nama container-p 8080:80memetakan port 8080 host ke port 80 containernginxadalah 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 platform containerization untuk membangun, mengemas, dan menjalankan aplikasi dalam container. Docker Engine menyediakan daemon dan CLI untuk mengelola image, container, network, dan volume.
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.
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.
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.
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.
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.
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.
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.




