- 1 1. Pendahuluan
- 2 2. Prasyarat dan Persiapan
- 3 3. Installing Docker
- 4 4. Izin Pengguna dan Menjalankan Docker Tanpa sudo
- 5 5. Verifikasi Startup dan Operasi
- 6 6. Menginstal dan Menggunakan Docker Compose
- 6.1 6-1. Memverifikasi Instalasi Docker Compose V2
- 6.2 6-2. Manfaat Docker Compose
- 6.3 6-3. Struktur Dasar File Konfigurasi Compose
- 6.4 6-4. Contoh: Pengaturan Multi-Kontainer (Web + Database)
- 6.5 6-5. Perintah Docker Compose yang Sering Digunakan
- 6.6 6-6. Kasus Penggunaan yang Direkomendasikan untuk Compose dalam Pengembangan
- 7 7. Pertimbangan Keamanan dan Operasional
- 7.1 7-1. Grup docker Memiliki Hak “Efektif Root”
- 7.2 ● Poin Penting yang Perlu Diketahui
- 7.3 7-2. Mempertimbangkan Docker Tanpa Root (Opsi Lanjutan)
- 7.4 7-3. Membersihkan Gambar dan Kontainer yang Tidak Digunakan
- 7.5 7-4. Hindari Menggunakan Tag “latest” di Produksi
- 7.6 7-5. Gunakan Gambar Dasar Resmi dalam Dockerfile
- 7.7 7-6. Hati-hati dengan Paparan Jaringan dan Port
- 7.8 7-7. Manajemen Log Saat Kegagalan
- 8 8. Masalah Umum dan Pemecahan Masalah
1. Pendahuluan
Saat menyiapkan lingkungan pengembangan di Ubuntu, situasi di mana Anda berpikir “saatnya instal Docker dulu” semakin sering terjadi. Aplikasi web, pemrosesan batch, basis data uji, middleware uji… Jika Anda menginstal semuanya secara manual setiap kali, waktu dan tenaga yang sangat besar akan terpakai hanya untuk menyiapkan lingkungan.
Di sinilah teknologi virtualisasi kontainer Docker menjadi sangat berguna. Dengan Docker, Anda dapat mengelola tidak hanya aplikasi itu sendiri tetapi juga semua pustaka dan konfigurasi yang diperlukan sekaligus sebagai sebuah “image.” Setelah Docker terpasang di Ubuntu, Anda dapat dengan mudah:
- Meluncurkan lingkungan pengembangan baru dalam hitungan menit
- Memastikan semua anggota tim dapat mereproduksi perilaku dalam lingkungan yang sama
- Membuat ulang pengaturan mirip produksi secara lokal dengan mudah
Manfaat‑manfaat ini dapat dinikmati dengan usaha yang minimal.
Di sisi lain, bagi mereka yang pertama kali menggunakan Docker, terdapat banyak titik jebakan umum:
- Tidak tahu prosedur instalasi mana yang sebenarnya benar
- Tidak memahami perbedaan antara repositori default Ubuntu dan repositori resmi Docker
- Mengalami kesalahan izin karena kebingungan kapan harus menggunakan
sudo
Ketika Anda mencari “ubuntu install docker,” Anda akan menemukan banyak artikel yang mencantumkan rangkaian perintah panjang, tetapi seringkali tidak menjelaskan mengapa langkah‑langkah tersebut diperlukan atau apa yang menandai instalasi yang lengkap.
1-1. Tujuan Artikel Ini
Artikel ini ditujukan bagi pembaca yang ingin menginstal Docker di Ubuntu, dan mencakup poin‑poin kunci berikut:
- Prosedur umum saat ini untuk menginstal Docker di Ubuntu
- Metode instalasi yang lebih mudah dikelola menggunakan repositori resmi
- Cara menjalankan perintah
dockertanpasudo - Verifikasi pasca‑instalasi dan perintah dasar yang penting
- Pengenalan alat‑alat yang sering dipakai seperti Docker Compose
Alih‑alih daripada sekadar mencantumkan perintah, panduan ini menjelaskan mengapa setiap langkah diperlukan, membantu Anda memelihara lingkungan dengan lebih mudah di masa depan.
1-2. Target Pembaca dan Prasyarat
Artikel ini ditujukan bagi pembaca yang:
- Memahami operasi dasar Ubuntu (membuka terminal, menggunakan perintah
apt, dll.) - Merupakan pengembang atau calon insinyur yang pertama kali mencoba Docker
- Sedang mempertimbangkan migrasi lingkungan uji yang ada ke kontainer
Pengetahuan administrasi Linux tingkat lanjut tidak diperlukan. Selama Anda nyaman mengetik perintah di terminal, panduan ini sudah cukup.
1-3. Struktur Artikel dan Cara Membacanya
Artikel ini disusun dalam urutan berikut:
- Memeriksa prasyarat
- Metode instalasi (repositori resmi / berbasis skrip)
- Pengaturan izin dan verifikasi
- Menginstal Docker Compose
- Pemecahan masalah dan langkah selanjutnya
Anda dapat membaca artikel dari awal sampai akhir, atau jika Docker sudah terpasang, Anda dapat fokus hanya pada bagian “Izin” atau “Compose”.
2. Prasyarat dan Persiapan
Menginstal Docker sendiri relatif sederhana, tetapi tergantung pada versi Ubuntu Anda atau lingkungan yang sudah ada, ada beberapa hal yang perlu diperiksa terlebih dahulu. Bagian ini merangkum prasyarat dan persiapan yang diperlukan untuk instalasi yang lancar.
2-1. Versi Ubuntu yang Didukung
Docker berfungsi pada banyak versi Ubuntu, tetapi rilis LTS berikut ini paling umum digunakan:
- Ubuntu 22.04 LTS (Direkomendasikan)
- Ubuntu 20.04 LTS
- Ubuntu 24.04 LTS (Terbaru)
Rilis LTS (Long Term Support) memberikan stabilitas jangka panjang, menjadikannya ideal untuk memelihara lingkungan pengembangan berbasis Docker.
Rilis non‑LTS (seperti 23.10) juga dapat dipakai, tetapi versi LTS umumnya lebih disukai dalam lingkungan profesional.
2-2. Paket Docker yang Sudah Terpasang sebelumnya
Ubuntu’s default repository includes a package called docker.io. However, this is not the official Docker package provided by Docker Inc., and updates tend to lag behind. Therefore, installing Docker from the official repository is strongly recommended.
First, check and remove any existing Docker-related packages if necessary:
sudo apt remove docker docker.io containerd runc
If the message indicates that nothing is installed, no action is required.
2-3. Updating APT and Installing Required Packages
Before adding Docker’s official repository, update APT and install required tools:
sudo apt update
sudo apt install -y ca-certificates curl gnupg
These tools are required to add Docker’s GPG key and repository securely.
2-4. Verifying Administrator Privileges (sudo)
Docker installation requires sudo privileges. If your account does not have sudo access, switch to an administrator account or request permission.
You can verify sudo access with the following command:
sudo -v
If you are prompted for a password and the command succeeds, you are ready to proceed.
2-5. Checking Network Connectivity
Installing Docker requires access to external repositories, so an active internet connection is mandatory. In corporate or proxy environments, GPG key retrieval may fail due to access restrictions.
In such cases, consult your network administrator regarding proxy settings or allowlist configurations.
2-6. Choosing the Installation Method
There are three main ways to install Docker:
- Instal melalui repositori resmi Docker (Direkomendasikan)
- Gunakan skrip instalasi
get.docker.com(Cepat dan mudah) - Unduh secara manual dan instal paket .deb Docker (Kasus khusus)
This article focuses primarily on metode repositori resmi, which is the most common and easiest to maintain.
3. Installing Docker
Now let’s install Docker on Ubuntu. Although multiple installation methods exist, this guide focuses on the official Docker repository method, which is the most reliable and widely used in production environments.
This method allows stable upgrades via apt upgrade, making it ideal for long-term use.
3-1. Adding the Official Docker Repository (Recommended)
First, register the official GPG key provided by Docker and add Docker’s repository to APT.
Once this is configured correctly, you can avoid accidentally installing the outdated docker.io package from Ubuntu’s default repository.
3-1-1. Registering the GPG Key
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
/etc/apt/keyrings/adalah lokasi penyimpanan kunci yang direkomendasikan untuk Ubuntu 22.04 dan yang lebih baru--dearmormengonversi kunci ke format biner
This step allows APT to trust the official Docker repository.
3-1-2. Adding the Repository
Next, add Docker’s repository to APT’s source list.
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo $VERSION_CODENAME) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Key points:
$(. /etc/os-release && echo $VERSION_CODENAME)secara otomatis menyisipkan kode nama Ubuntu yang tepat (sepertijammyataufocal)- Hanya repositori stabil yang ditambahkan
3-1-3. Updating Repository Information
After adding the repository, update the APT index.
sudo apt update
At this point, docker-ce (Docker Engine) should appear as an installable package.
3-2. Installing Docker Engine
Now install the main Docker packages.
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Package roles:
- docker-ce : inti Docker Engine
- docker-ce-cli : antarmuka baris perintah Docker
- containerd.io : runtime kontainer inti yang digunakan Docker
- docker-buildx-plugin : fitur build lanjutan seperti build multi‑platform
- docker-compose-plugin : Docker Compose V2 (perintah
docker compose)
Setelah instalasi, daemon Docker mulai secara otomatis.
3-3. Memverifikasi Instalasi
Periksa status runtime Docker dengan perintah berikut:
sudo systemctl status docker
Jika Anda melihat active (running), Docker beroperasi dengan benar.
Tekan q untuk keluar dari tampilan status.
3-4. Opsional: Instalasi Berbasis Skrip untuk Kemudahan
Docker juga menyediakan skrip instalasi all‑in‑one.
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Keuntungan:
- Lebih sedikit perintah dan penyiapan cepat
- Ideal untuk lingkungan sederhana atau sekali pakai
Kerugian:
- Kontrol versi yang sulit
- Sering tidak disarankan untuk produksi atau penggunaan jangka panjang
Meskipun nyaman bagi pemula, artikel ini memprioritaskan keterkelolaan sehingga fokus pada metode repositori resmi.
3-5. Catatan untuk Rilis Ubuntu Terbaru (mis., 24.04)
Segera setelah rilis Ubuntu utama, repositori resmi Docker mungkin belum sepenuhnya mendukung versi baru.
Dalam kasus seperti itu, verifikasi hal berikut:
- Bahwa lokasi dan format kunci GPG sesuai dengan spesifikasi saat ini
- Bahwa
VERSION_CODENAMEsecara resmi didukung - Bahwa tidak ada kesalahan tanda tangan selama
apt update
Jika dukungan tertunda, penggunaan sementara skrip get.docker.com dapat menjadi solusi praktis.
4. Izin Pengguna dan Menjalankan Docker Tanpa sudo
Setelah menginstal Docker, Anda mungkin ingin langsung menggunakan perintah docker. Namun, secara default, Anda harus menambahkan sudo di depan setiap perintah.
Perilaku ini disengaja demi keamanan, tetapi tidak nyaman untuk pengembangan atau pembelajaran harian. Untuk mengatasinya, Anda dapat menambahkan pengguna Anda ke grup docker, memungkinkan perintah Docker dijalankan tanpa sudo.
4-1. Mengapa Menjalankan Tanpa sudo Penting
Di Ubuntu, daemon Docker (dockerd) berjalan dengan hak istimewa root.
Oleh karena itu, membuat atau menghapus kontainer melalui perintah docker biasanya memerlukan akses root.
Grup docker ada untuk menangani kebutuhan ini.
- Pengguna dalam grup ini dapat mengakses daemon Docker secara langsung
- Ini perintah seperti
docker runtanpasudo - Pengaturan ini hampir esensial untuk penggunaan pengembangan
Perlu dicatat bahwa grup docker secara efektif memberikan hak istimewa yang hampir setara dengan root, sehingga kehati-hatian diperlukan di lingkungan bersama.
(Untuk desktop pribadi atau WSL2, biasanya tidak menjadi masalah.)
4-2. Menambahkan Pengguna Anda ke Grup docker
Tambahkan pengguna yang sedang masuk ke grup docker:
sudo usermod -aG docker $USER
Perintah ini menambahkan pengguna ke grup. Opsi -aG berarti append to group.
4-3. Menerapkan Perubahan
Perubahan keanggotaan grup berlaku setelah keluar dan masuk kembali.
Untuk menerapkan perubahan segera, Anda juga dapat menjalankan:
newgrp docker
Ini memulai sesi shell baru dengan izin grup docker yang diterapkan.
4-4. Memverifikasi Eksekusi Tanpa sudo
Sekarang uji Docker tanpa sudo:
docker run hello-world
Output yang berhasil:
- Halo dari Docker!
- Gambar diunduh dan pesan ditampilkan
Jika terjadi error, periksa hal berikut:
- Apakah Anda sudah keluar dan masuk kembali setelah mengubah keanggot
- Apakah
/usr/bin/dockeryang digunakan? - Apakah daemon Docker berjalan (
systemctl status docker)?
4-5. Pertimbangan Keamanan (Penting)
Grup docker memberikan hak istimewa kuat yang secara efektif setara dengan akses root.
- Membaca file secara arbitrer
- Memasang direktori host ke dalam kontainer
- Melakukan operasi jaringan
- Kontrol tingkat sistem melalui socket Docker
Ini dapat diterima untuk sistem pribadi, tetapi manajemen pengguna sangat penting pada server bersama.
Dalam kasus seperti itu, Anda dapat mempertimbangkan Docker tanpa root, yang dibahas di bagian selanjutnya.
5. Verifikasi Startup dan Operasi
Setelah instalasi Docker dan konfigurasi izin selesai, langkah selanjutnya adalah memverifikasi bahwa Docker beroperasi dengan benar. Bagian ini menjelaskan cara memeriksa status layanan Docker dan menjalankan kontainer secara nyata.
5-1. Memeriksa Status Daemon Docker
Pertama, pastikan Docker berjalan dengan benar di latar belakang.
sudo systemctl status docker
Indikator status utama:
- active (running) → Beroperasi secara normal
- inactive → Tidak berjalan (harus dimulai secara manual)
- failed → Kesalahan konfigurasi atau ketergantungan
Jika statusnya inactive atau failed, mulai Docker dengan perintah berikut:
sudo systemctl start docker
Untuk memastikan Docker mulai secara otomatis saat OS boot:
sudo systemctl enable docker
5-2. Memverifikasi Operasi dengan Kontainer hello-world
Cara paling umum untuk memverifikasi instalasi Docker adalah dengan menjalankan image resmi hello-world.
docker run hello-world
Perintah ini melakukan tindakan berikut:
- Mengunduh image dari Docker Hub jika belum ada secara lokal
- Memulai sebuah kontainer dari image tersebut
- Menampilkan pesan uji dan keluar
Jika berhasil, Anda akan melihat output serupa dengan berikut:
Hello from Docker!
This message shows that your installation appears to be working correctly.
Jika pesan ini muncul, Docker telah terinstal dan berfungsi dengan benar.
5-3. Mencoba Perintah Docker Dasar
Setelah operasi dasar dikonfirmasi, coba beberapa perintah Docker yang umum digunakan.
5-3-1. Menampilkan Daftar Image Docker
docker images
Ini menampilkan daftar image yang diunduh secara lokal. Jika hello-world muncul, semuanya berfungsi sebagaimana mestinya.
5-3-2. Memeriksa Kontainer yang Berjalan
docker ps
Perintah ini menampilkan daftar kontainer yang sedang berjalan. (Kontainer hello-world keluar segera dan biasanya tidak akan muncul.)
Untuk menampilkan kontainer yang berhenti juga:
docker ps -a
5-3-3. Menjalankan Contoh Image Resmi
Untuk mencoba server web Nginx sederhana:
docker run -d -p 8080:80 nginx
-d→ Jalankan di latar belakang-p→ Memetakan port host 8080 ke port kontainer 80
Buka http://localhost:8080 di peramban Anda untuk melihat halaman Nginx default.
5-4. Menghentikan dan Menghapus Kontainer
Anda dapat menghentikan kontainer yang berjalan dengan perintah berikut:
docker stop <container-id>
Untuk menghapus sebuah kontainer:
docker rm <container-id>
Untuk menghapus image yang tidak terpakai:
docker rmi <image-id>
Ingat bahwa ketergantungan mengikuti urutan kontainer → image → volume, jadi hapus dengan hati-hati.
5-5. Penyebab Umum Kesalahan
● Kesalahan Izin
Got permission denied while trying to connect to the Docker daemon socket → Pengguna belum ditambahkan ke grup docker
● Daemon Docker Tidak Berjalan
Cannot connect to the Docker daemon at unix:///var/run/docker.sock → Mulai Docker dengan systemctl start docker
● Masalah Jaringan Menghalangi Pengunduhan Image
→ Periksa pengaturan proxy, konfigurasi DNS, atau pembatasan jaringan
● Paket docker.io Legacy Masih Terinstal
→ Hapus instalasinya sepenuhnya dan instal ulang Docker dari repositori resmi
6. Menginstal dan Menggunakan Docker Compose
Salah satu alat penting untuk bekerja dengan Docker dalam skala besar adalah Docker Compose. Aplikasi web modern sering terdiri dari beberapa komponen seperti basis data, cache, pekerja, dan server web. Mengelola semuanya secara terpisah dengan perintah docker run dengan cepat menjadi tidak praktis.
Docker Compose memungkinkan Anda mendefinisikan beberapa konfigurasi kontainer dalam satu file dan mengelolanya bersama, menjadikannya salah satu alat yang paling sering digunakan dalam pengembangan dunia nyata.
6-1. Memverifikasi Instalasi Docker Compose V2
Saat menginstal Docker dari repositori resmi, Docker Compose secara otomatis diinstal sebagai plugin.
Verifikasi instalasi dengan perintah berikut:
docker compose version
Jika terinstal dengan benar, Anda akan melihat output yang mirip dengan:
Docker Compose version v2.x.x
Jika Anda melihat error seperti docker: 'compose' is not a docker command, instal plugin secara manual:
sudo apt install docker-compose-plugin
6-2. Manfaat Docker Compose
Keunggulan utama Docker Compose meliputi:
- Manajemen terpadu untuk banyak kontainer (mulai, hentikan, restart)
- Konfigurasi sebagai kode, memastikan lingkungan yang dapat direproduksi
- Mudah berbagi pengaturan aplikasi, API, dan basis data
- Meluncurkan lingkungan pengembangan dengan satu perintah
docker compose up
Hal ini membuat Docker Compose hampir tak tergantikan untuk pengembangan aplikasi.
6-3. Struktur Dasar File Konfigurasi Compose
Docker Compose menggunakan file bernama docker-compose.yml (atau compose.yaml) untuk mendefinisikan layanan.
Sebagai contoh minimal, buat konfigurasi sederhana yang menjalankan Nginx.
services:
web:
image: nginx:latest
ports:
- "8080:80"
Jalankan perintah berikut di direktori yang berisi file tersebut:
docker compose up -d
Nginx akan berjalan di latar belakang. Akses http://localhost:8080 di peramban Anda untuk memastikan.
6-4. Contoh: Pengaturan Multi-Kontainer (Web + Database)
Kekuatan sebenarnya dari Compose terlihat ketika mengelola banyak kontainer secara bersamaan.
Sebagai contoh, menjalankan aplikasi web bersama MySQL dapat dikonfigurasi sebagai berikut:
services:
app:
build: .
ports:
- "3000:3000"
depends_on:
- db
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- db-data:/var/lib/mysql
volumes:
db-data:
Penjelasan:
depends_onmemastikan basis data dimulai sebelum aplikasivolumesmempertahankan data basis data- Beberapa layanan dikelola dalam satu file YAML
Ini adalah pola yang sangat praktis untuk lingkungan pengembangan.
6-5. Perintah Docker Compose yang Sering Digunakan
Perintah-perintah ini berguna untuk dihafal:
| Command | Description |
|---|---|
docker compose up -d | Start containers in the background |
docker compose down | Stop and remove containers and networks |
docker compose build | Build images using Dockerfile |
docker compose ps | List containers managed by Compose |
docker compose logs -f | View logs (optionally per service) |
Menggunakan Compose memungkinkan Anda mereplikasi lingkungan yang identik berulang kali, menjadikannya ideal untuk pengembangan tim.
6-6. Kasus Penggunaan yang Direkomendasikan untuk Compose dalam Pengembangan
- Penyiapan lingkungan lokal dengan satu perintah
- Pengujian di lingkungan yang mendekati produksi
- Meluncurkan layanan gabungan seperti basis data, cache, dan antrian pesan
- Menyimpan data dengan volume
- Mengelola konfigurasi dengan variabel lingkungan
.env - Mendukung arsitektur mikroservis kompleks
Setelah Anda nyaman dengan Docker dan Compose, waktu penyiapan lingkungan berkurang secara drastis,
sehingga meningkatkan efisiensi pengembangan secara signifikan.
7. Pertimbangan Keamanan dan Operasional
Docker adalah alat yang sangat kuat dan nyaman, namun “menjadi terkontainerisasi” tidak otomatis berarti “aman”.
Saat menggunakan Docker secara rutin di Ubuntu, ada beberapa poin penting keamanan dan operasional yang perlu Anda pahami.
Bagian ini menyusun pengetahuan esensial untuk mengoperasikan Docker secara aman dan stabil, dengan cara yang mudah dipahami bahkan bagi pemula.
7-1. Grup docker Memiliki Hak “Efektif Root”
Grup docker yang dikonfigurasi sebelumnya sebenarnya memberikan hak istimewa yang sangat kuat.
Pengguna yang termasuk dalam grup docker dapat mengoperasikan OS host melalui socket Docker, yang secara efektif setara dengan akses level root.
● Poin Penting yang Perlu Diketahui
- Jangan menambahkan pengguna sembarangan ke grup docker pada server bersama
- Pahami implikasinya, bukan hanya kemudahan “tanpa sudo”
- Pada organisasi dengan kebijakan keamanan ketat, persetujuan administrator mungkin diperlukan
Ini jarang menjadi masalah pada mesin Ubuntu pribadi atau PC pengembangan, tetapi penilaian yang hati-hati diperlukan pada server produksi.
7-2. Mempertimbangkan Docker Tanpa Root (Opsi Lanjutan)
Docker menyediakan fitur yang disebut mode tanpa root, yang memungkinkan daemon Docker berjalan di bawah akun pengguna biasa alih-alih root.
Keuntungan:
- Secara signifikan mengurangi risiko hak istimewa OS host
- Memungkinkan penggunaan Docker yang lebih aman di lingkungan dengan persyaratan keamanan yang ketat
Kerugian:
- Beberapa fitur jaringan dibatasi
- Konfigurasi lebih kompleks bagi pemula
- Perilaku mungkin berbeda dari Docker standar
Mode tanpa root tidak diperlukan untuk kebanyakan kasus penggunaan pengembangan, tetapi dapat menjadi opsi yang layak di lingkungan perusahaan atau yang berfokus pada kepatuhan.
7-3. Membersihkan Gambar dan Kontainer yang Tidak Digunakan
Seiring waktu, Docker dapat mengonsumsi banyak ruang disk tanpa Anda sadari. Kontainer, gambar, dan volume yang tidak terpakai dapat menumpuk dan dengan mudah melebihi 100GB.

● Perintah untuk menghapus sumber daya yang tidak terpakai
Menghapus gambar yang tidak terpakai
docker image prune
Menghapus kontainer dan jaringan secara bersamaan
docker system prune
Pembersihan agresif (gunakan dengan hati-hati)
docker system prune -a
Opsi -a menghapus semua gambar yang tidak terpakai, jadi gunakan dengan hati-hati.
7-4. Hindari Menggunakan Tag “latest” di Produksi
Meskipun tag seperti nginx:latest nyaman selama pengembangan, mereka tidak direkomendasikan untuk penggunaan produksi.
Alasan:
- Versi tepat di balik
latesttidak dijamin - Pembaruan tak terduga dapat menyebabkan kegagalan runtime
- Kehilangan reproduktibilitas menyebabkan penyebaran yang tidak stabil
Pendekatan yang direkomendasikan: Pin versi secara eksplisit
Contoh:
image: nginx:1.25
Versi eksplisit adalah aturan dasar untuk lingkungan produksi.
7-5. Gunakan Gambar Dasar Resmi dalam Dockerfile
Saat membuat Dockerfile, ikuti pedoman berikut:
- Lebih pilih gambar resmi (gambar perpustakaan)
- Hindari gambar yang dipelihara oleh penulis yang tidak dikenal atau tidak terpercaya
- Saat menggunakan gambar OS ringan seperti Alpine, periksa status dukungan kerentanan
Gambar yang tidak terpercaya dapat berisi malware. Bahkan di lingkungan pengembangan, hindari mereka bila memungkinkan.
7-6. Hati-hati dengan Paparan Jaringan dan Port
Ketika kontainer mengekspos port pada OS host, mereka dapat diakses dari luar sistem.
Langkah Pencegahan:
- Hindari pemetaan
-p 80:80yang tidak perlu - Untuk penggunaan lokal, ikat hanya ke localhost, misalnya
-p 127.0.0.1:8080:80 - Gabungkan dengan pengaturan firewall seperti UFW
- Untuk produksi, gunakan reverse proxy (seperti Nginx) untuk keamanan yang lebih baik
Manajemen port sangat penting pada server Ubuntu berbasis VPS atau cloud.
7-7. Manajemen Log Saat Kegagalan
Log Docker dapat dilihat dengan perintah berikut:
docker logs <container-name>
Volume log yang besar dapat dengan cepat mengonsumsi ruang disk, jadi pertimbangkan untuk mengonfigurasi driver log dan rotasi log.
8. Masalah Umum dan Pemecahan Masalah
Meskipun Docker adalah alat yang kuat, kesalahan tak terduga dapat terjadi pada Ubuntu karena perbedaan lingkungan atau kesalahan konfigurasi. Bagian ini merangkum masalah umum dan solusinya, dari tingkat pemula hingga menengah.
8-1. Tidak Dapat Terhubung ke Daemon Docker
● Pesan error
Cannot connect to the Docker daemon at unix:///var/run/docker.sock.
● Penyebab dan solusi
- Daemon Docker tidak berjalan :
sudo systemctl start docker - Perubahan grup docker belum diterapkan : Keluar dan masuk kembali, atau jalankan
newgrp docker - Masalah izin dengan /var/run/docker.sock : Pastikan pengguna termasuk dalam grup docker
8-2. Kesalahan Permission Denied
● Error tipikal
Got permission denied while trying to connect to the Docker daemon socket
● Solusi
Penyebabnya hampir selalu konfigurasi grup docker yang hilang.
sudo usermod -aG docker $USER
Kemudian keluar dan masuk kembali.
8-3. Kesalahan GPG Saat Menambahkan Repository APT
● Contoh Kesalahan
NO_PUBKEY XXXXXXXX
atau
The following signatures couldn't be verified
● Penyebab dan Solusi
- Kunci GPG tidak terdaftar dengan benar
- curl gagal karena pembatasan jaringan
Daftarkan kembali kunci dengan:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Kemudian jalankan sudo apt update lagi.
8-4. Konflik Pengikatan Port
● Contoh Kesalahan
Bind for 0.0.0.0:80 failed: port is already allocated.
● Penyebab
- Port sudah digunakan oleh proses lain di host
- Kontainer Docker lain menggunakan port yang sama
● Solusi
Periksa proses mana yang menggunakan port:
sudo lsof -i -P -n | grep :80
Periksa kontainer yang sedang berjalan:
docker ps
Ubah pemetaan port:
-p 8080:80
8-5. Kegagalan Pengunduhan Image
● Penyebab Umum
- Pembatasan jaringan (lingkungan korporat)
- Masalah konfigurasi DNS
- Akses ke Docker Hub diblokir
● Solusi
- Ganti server DNS (mis. 1.1.1.1 atau 8.8.8.8)
- Verifikasi konfigurasi proxy
- Gunakan VPN jika diperlukan oleh lingkungan
8-6. Kesalahan Kehabisan Ruang Disk
● Pesan Umum
no space left on device
● Penyelesaian
Hapus sumber daya yang tidak terpakai:
docker system prune -a
Tinjau image, kontainer, dan volume:
docker images
docker ps -a
docker volume ls
Kehabisan ruang disk adalah salah satu masalah operasional Docker yang paling umum.


