Cara Menginstal Docker di Ubuntu: Panduan Lengkap yang Ramah Pemula (Metode Resmi)

.## 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 setup mirip produksi secara lokal dengan mudah

Manfaat‑manfaat ini dapat dinikmati dengan usaha yang minimal.

Di sisi lain, bagi mereka yang menggunakan Docker untuk pertama kalinya, 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 menandakan instalasi 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 docker tanpa sudo
  • Verifikasi pasca‑instalasi dan perintah dasar penting
  • Pengenalan alat yang sering dipakai seperti Docker Compose

Alih‑alihanya 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 mencoba Docker untuk pertama kalinya
  • Sedang mempertimbangkan migrasi lingkungan uji yang ada ke dalam 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 ini dari awal hingga 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 atau lingkungan yang sudah ada, ada beberapa hal yang patut 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 dipakai:

  • Ubuntu 22.04 LTS (Direkomendasikan)
  • Ubuntu 20.04 LTS
  • Ubuntu 24.04 LTS (Terbaru)

Rilis LTS (Long Term Support) menyediakan stabilitas jangka panjang, menjadikannya pilihan ideal untuk mempertahankan lingkungan pengembangan berbasis Docker.

Rilis non‑LTS (seperti 23.10) juga dapat digunakan, namun versi LTS umumnya lebih disukai dalam lingkungan profesional.

2-2. Paket Docker yang Sudah Terpasang

(Bagian selanjutnya akan melanjutkan penjelasan tentang paket‑paket Docker yang mungkin sudah ada di sistem Anda.)

.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. Memperbarui APT dan Menginstal Paket yang Diperlukan

Sebelum menambahkan repositori resmi Docker, perbarui APT dan instal alat yang diperlukan:

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. Memverifikasi Hak Administrator (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. Memeriksa Konektivitas Jaringan

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. Memilih Metode Instalasi

Ada tiga cara utama untuk menginstal Docker:

  1. Instal melalui repositori resmi Docker (Disarankan)
  2. Gunakan skrip instalasi get.docker.com (Cepat dan mudah)
  3. Unduh secara manual dan instal paket .deb Docker (Kasus khusus)

Artikel ini fokus terutama pada metode repositori resmi, yang paling umum dan paling mudah dipelihara.

3. Menginstal Docker

Sekarang mari menginstal Docker di Ubuntu. Meskipun ada beberapa metode instalasi, panduan ini fokus pada metode repositori resmi Docker, yang paling dapat diandalkan dan paling banyak digunakan di lingkungan produksi.

Metode ini memungkinkan peningkatan stabil melalui apt upgrade, menjadikannya ideal untuk penggunaan jangka panjang.

3-1. Menambahkan Repositori Resmi Docker (Disarankan)

Pertama, daftarkan kunci GPG resmi yang disediakan oleh Docker dan tambahkan repositori Docker ke APT.
Setelah ini dikonfigurasi dengan benar, Anda dapat menghindari secara tidak sengaja menginstal paket docker.io yang usang dari repositori default Ubuntu.

3-1-1. Mendaftarkan Kunci GPG

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
  • --dearmor mengonversi kunci ke format biner

Langkah ini memungkinkan APT mempercayai repositori resmi Docker.

3-1-2. Menambahkan Repositori

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

Poin penting:

  • $(. /etc/os-release && echo $VERSION_CODENAME) secara otomatis menyisipkan kode nama Ubuntu yang tepat (seperti jammy atau focal )
  • Hanya repositori stabil yang ditambahkan

3-1-3. Memperbarui Informasi Repositori

After adding the repository, update the APT index.

sudo apt update

Pada titik ini, docker-ce (Docker Engine) seharusnya muncul sebagai paket yang dapat diinstal.

3-2. Menginstal 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 akan mulai secara otomatis.

3-3. Memverifikasi Instalasi

Periksa status runtime Docker dengan perintah berikut:

sudo systemctl status docker

Jika Anda melihat active (running), Docker berfungsi dengan baik.

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:

  • Sulit mengontrol versi
  • Sering tidak disarankan untuk produksi atau penggunaan jangka panjang

Meskipun memudahkan pemula, artikel ini mengutamakan keberlanjutan dan karenanya fokus pada metode repositori resmi.

3-5. Catatan untuk Rilis Ubuntu Terbaru (misalnya, 24.04)

Segera setelah rilis utama Ubuntu, repositori resmi Docker mungkin belum sepenuhnya mendukung versi baru tersebut.
Dalam kasus seperti itu, pastikan hal‑hal berikut:

  • Lokasi dan format kunci GPG sesuai dengan spesifikasi terkini
  • VERSION_CODENAME secara resmi didukung
  • Tidak ada kesalahan tanda tangan saat menjalankan 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 menjadi tidak praktis untuk pengembangan atau pembelajaran sehari‑hari. Untuk mengatasinya, Anda dapat menambahkan pengguna Anda ke grup docker, sehingga perintah Docker dapat 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 memungkinkan perintah seperti docker run tanpa sudo
  • Pengaturan ini hampir wajib untuk penggunaan pengembangan

Perlu dicatat bahwa grup docker pada dasarnya memberikan hak istimewa yang hampir setara dengan root, sehingga harus berhati‑hati di lingkungan bersama.
(Di 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 (menambahkan ke grup).

4-3. Menerapkan Perubahan

Perubahan keanggotaan grup akan berlaku setelah Anda logout dan login kembali.

Untuk menerapkan perubahan secara langsung, Anda juga dapat menjalankan:

newgrp docker

Ini memulai sesi shell baru dengan izin grup docker yang sudah diterapkan.

4-4. Memverifikasi Eksekusi Tanpa sudo

Sekarang uji Docker tanpa sudo:

docker run hello-world

Output yang berhasil:

  • Hello from Docker!
  • Gambar diunduh dan pesan ditampilkan

Jika terjadi kesalahan, periksa hal‑hal berikut:

  • Apakah Anda sudah logout dan login kembali setelah mengubah keanggotaan grup?
  • Apakah /usr/bin/docker yang digunakan?
  • Apakah daemon Docker berjalan (systemctl status docker )?

4-5. Pertimbangan Keamanan (Penting)

Grup docker memberikan hak istimewa kuat yang pada dasarnya setara dengan akses root.

  • Membaca file apa pun
  • Mem‑mount direktori host ke dalam kontainer
  • Melakukan operasi jaringan
  • Kontrol tingkat sistem melalui socket Docker

This is acceptable for personal systems, but user management is critical on shared servers.

In such cases, you may consider rootless Docker, which is discussed in later sections.

5. Verifikasi Startup dan Operasi

Once Docker installation and permission configuration are complete, the next step is to verify that Docker operates correctly.
This section explains how to check the Docker service status and actually run containers.

5-1. Memeriksa Status Daemon Docker

First, verify that Docker is running correctly in the background.

sudo systemctl status docker

Key status indicators:

  • active (running) → Beroperasi secara normal
  • inactive → Tidak berjalan (harus dimulai secara manual)
  • failed → Kesalahan konfigurasi atau ketergantungan

If the status is inactive or failed, start Docker with the following command:

sudo systemctl start docker

To ensure Docker starts automatically when the OS boots:

sudo systemctl enable docker

5-2. Memverifikasi Operasi dengan Kontainer hello-world

The most common way to verify Docker installation is by running the official hello-world image.

docker run hello-world

This command performs the following actions:

  1. Mengunduh image dari Docker Hub jika tidak ada secara lokal
  2. Memulai sebuah kontainer dari image tersebut
  3. Menampilkan pesan tes dan keluar

If successful, you will see output similar to the following:

Hello from Docker!
This message shows that your installation appears to be working correctly.

If this message appears, Docker is installed and functioning correctly.

5-3. Mencoba Perintah Docker Dasar

Once basic operation is confirmed, try some commonly used Docker commands.

5-3-1. Menampilkan Daftar Image Docker

docker images

This displays a list of images downloaded locally. If hello-world appears, everything is working as expected.

5-3-2. Memeriksa Kontainer yang Berjalan

docker ps

This command lists currently running containers.
(The hello-world container exits immediately and will not usually appear.)

To display stopped containers as well:

docker ps -a

5-3-3. Menjalankan Contoh Image Resmi

To try a simple Nginx web server:

docker run -d -p 8080:80 nginx
  • -d → Jalankan di latar belakang
  • -p → Memetakan port host 8080 ke port kontainer 80

Open http://localhost:8080 in your browser to see the default Nginx page.

5-4. Menghentikan dan Menghapus Kontainer

You can stop a running container using the following command:

docker stop <container-id>

To remove a container:

docker rm <container-id>

To remove unused images:

docker rmi <image-id>

Remember that dependencies follow the order container → image → volume, so remove them carefully.

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 Terpasang

→ Hapus instalasinya sepenuhnya dan instal ulang Docker dari repositori resmi

6. Menginstal dan Menggunakan Docker Compose

One essential tool for working with Docker at scale is Docker Compose.
Modern web applications often consist of multiple components such as databases, caches, workers, and web servers. Managing these individually with docker run commands quickly becomes impractical.

Docker Compose allows you to define multiple container configurations in a single file and manage them together, making it one of the most commonly used tools in real‑world development.

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 serupa 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

Keuntungan utama Docker Compose meliputi:

  • Manajemen terpadu dari banyak kontainer (memulai, menghentikan, memulai ulang)
  • 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 meluncurkan 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 mengonfirmasi.

6-4. Contoh: Pengaturan Multi-Kontainer (Web + Basis Data)

Kekuatan sebenarnya dari Compose menjadi jelas 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_on memastikan basis data dimulai sebelum aplikasi
  • volumes mempertahankan 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:

CommandDescription
docker compose up -dStart containers in the background
docker compose downStop and remove containers and networks
docker compose buildBuild images using Dockerfile
docker compose psList containers managed by Compose
docker compose logs -fView logs (optionally per service)

Menggunakan Compose memungkinkan Anda membuat ulang lingkungan yang identik secara berulang, menjadikannya ideal untuk pengembangan tim.

6-6. Kasus Penggunaan yang Direkomendasikan untuk Compose dalam Pengembangan

  • Pengaturan lingkungan lokal dengan satu perintah
  • Pengujian di lingkungan yang mendekati produksi
  • Meluncurkan layanan gabungan seperti basis data, cache, dan antrian pesan
  • Mempertahankan data dengan volume
  • Mengelola konfigurasi dengan variabel lingkungan .env
  • Mendukung arsitektur mikroservis yang kompleks

Setelah Anda nyaman dengan Docker dan Compose, waktu penyiapan lingkungan berkurang secara drastis, secara signifikan meningkatkan efisiensi pengembangan.

7. Pertimbangan Keamanan dan Operasional

Docker adalah alat yang sangat kuat dan nyaman, tetapi “dalam kontainer” 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 penting untuk mengoperasikan Docker dengan aman dan stabil, dengan cara yang mudah dipahami bahkan bagi pemula.

7-1. Grup docker Memiliki Hak “Setara 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 “tidak memerlukan sudo”
  • Di organisasi dengan kebijakan keamanan ketat, persetujuan administrator mungkin diperlukan

This is rarely an issue on personal Ubuntu machines or development PCs, but careful judgment is required on production servers.

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 latest tidak dijamin
  • Pembaruan tak terduga dapat menyebabkan kegagalan saat 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:80 yang tidak diperlukan
  • Untuk penggunaan lokal, ikat hanya ke localhost, misalnya -p 127.0.0.1:8080:80
  • Kombinasikan 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 menghabiskan 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

  1. Daemon Docker tidak berjalan : sudo systemctl start docker
  2. Perubahan grup docker belum diterapkan : Keluar dan masuk kembali, atau jalankan newgrp docker
  3. 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 belum ada.

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 sedang 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 Kelebihan Penggunaan Ruang Disk

● Pesan tipikal

no space left on device

● Solusi

Hapus sumber daya yang tidak terpakai:

docker system prune -a

Tinjau image, kontainer, dan volume:

docker images
docker ps -a
docker volume ls

Kelebihan penggunaan ruang disk adalah salah satu masalah operasional Docker yang paling umum.

年収訴求