Cara Menggunakan Docker di Ubuntu: Panduan Lengkap Instalasi, Image, Dockerfile, dan Optimasi

目次

1. Pendahuluan

Apa Itu Docker?

Docker adalah platform yang menggunakan teknologi virtualisasi berbasis kontainer untuk mengembangkan, mendistribusikan, dan menjalankan aplikasi secara efisien. Tidak seperti mesin virtual tradisional (VM), kontainer berbagi kernel OS host, memungkinkan startup yang lebih cepat dan konsumsi sumber daya yang lebih rendah.

Manfaat Menggunakan Docker di Ubuntu

Ubuntu adalah salah satu distribusi Linux yang memiliki kompatibilitas kuat dengan Docker. Alasan utama meliputi:

  • Dukungan Resmi : Docker secara resmi mendukung Ubuntu, memungkinkan instalasi mudah melalui repositori resmi.
  • Manajemen Paket Stabil : Manajer paket APT Ubuntu membuat pengelolaan versi menjadi sederhana.
  • Dukungan Komunitas Luas : Ubuntu memiliki basis pengguna global yang besar, memudahkan pemecahan masalah ketika muncul isu.

Apa yang Akan Anda Pelajari dalam Artikel Ini

Panduan ini menjelaskan topik-topik berikut langkah demi langkah:

  1. Cara menginstal Docker di Ubuntu
  2. Operasi dasar untuk gambar Docker
  3. Membuat gambar kustom menggunakan Dockerfile
  4. Menyiapkan locale Jepang dalam kontainer Ubuntu
  5. Mengoptimalkan dan meminimalkan gambar Docker
  6. Mengembangkan aplikasi di dalam kontainer Ubuntu
  7. Kesalahan umum dan pemecahan masalah

Konten ini berguna bagi pemula maupun pengguna lanjutan, jadi silakan merujuk kapan saja sesuai kebutuhan.

2. Menginstal Docker di Ubuntu

Menginstal Docker Menggunakan Repository Resmi

Di Ubuntu, Anda dapat dengan mudah menginstal Docker menggunakan repositori resmi. Ikuti langkah-langkah di bawah ini untuk menyiapkan lingkungan Anda.

1. Hapus Paket Docker yang Ada

Ubuntu mungkin menyertakan paket bernama docker.io, yang bisa merupakan versi lama. Hapus paket tersebut sebelum menginstal Docker terbaru.

sudo apt remove docker docker-engine docker.io containerd runc

2. Instal Paket yang Diperlukan

Instal paket dependensi sebelum proses instalasi.

sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

3. Tambahkan Repository Docker Resmi

Tambahkan kunci GPG resmi Docker dan konfigurasikan repositori.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

4. Instal Docker

Setelah menambahkan repositori, instal Docker.

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

5. Verifikasi Instalasi

Periksa apakah Docker terinstal dengan benar dengan menampilkan informasi versi.

docker --version

Pengaturan Awal Setelah Instalasi

1. Mulai dan Aktifkan Layanan Docker

Mulai layanan Docker dan aktifkan startup otomatis saat boot.

sudo systemctl start docker
sudo systemctl enable docker

2. Izinkan Pengguna Non-Root Menjalankan Docker

Secara default, hanya root yang dapat menjalankan Docker. Izinkan pengguna biasa mengeksekusi perintah Docker.

sudo usermod -aG docker $USER

Keluar dan masuk kembali untuk menerapkan perubahan.

3. Uji Operasi Docker

Jalankan kontainer hello-world menggunakan akun pengguna biasa.

docker run hello-world

Jika output mencakup “Hello from Docker!”, instalasi berhasil.

3. Operasi Dasar Gambar Docker

Apa Itu Gambar Docker?

Gambar Docker berfungsi sebagai templat untuk membuat kontainer. Dengan menggunakan gambar Docker berbasis Ubuntu, Anda dapat dengan cepat meluncurkan lingkungan Ubuntu.

Mengunduh Gambar Ubuntu dari Docker Hub

Docker Hub menyediakan banyak gambar Docker resmi. Untuk mengunduh gambar Ubuntu, jalankan:

docker pull ubuntu

Memulai dan Menghentikan Kontainer

Gunakan gambar Ubuntu yang telah diunduh untuk memulai sebuah kontainer:

docker run -it ubuntu bash

Ini membuka shell di dalam kontainer Ubuntu, memungkinkan Anda untuk beroperasi di dalamnya.

Daftar Kontainer

Tampilkan kontainer yang sedang berjalan:

docker ps

Tampilkan semua kontainer, termasuk yang dihentikan:

docker ps -a

Menghentikan dan Menghapus Kontainer

Hentikan kontainer yang sedang berjalan:

docker stop [container ID or name]

Hapus kontainer yang tidak diperlukan:

docker rm [container ID or name]

Mengelola Image Docker

Daftar image Docker yang diunduh:

docker images

Hapus sebuah image:

docker rmi [image ID]

4. Membuat Image Kustom dengan Dockerfile

Apa Itu Dockerfile?

Dockerfile adalah file konfigurasi yang digunakan untuk membangun image Docker. Berdasarkan instruksi yang ditulis dalam Dockerfile, Anda dapat membuat image Docker yang disesuaikan. Hal ini memungkinkan Anda menyatukan lingkungan pengembangan atau membuat image yang mencakup paket-paket yang diperlukan.

Sintaks Dasar Dockerfile

Dockerfile biasanya mencakup perintah-perintah berikut:

CommandDescription
FROMSpecifies the base image
RUNExecutes commands to build the image
COPYCopies files into the container
WORKDIRSets the working directory
CMDDefault command executed when the container starts
ENTRYPOINTDefines the entry point of the container

Membuat Image Berbasis Ubuntu Kustom

Ikuti langkah-langkah di bawah ini untuk membuat image Docker berbasis Ubuntu kustom.

1. Buat Direktori Kerja

Pertama, buat direktori proyek baru dan masuk ke dalamnya.

mkdir my-ubuntu-image
cd my-ubuntu-image

2. Buat Dockerfile

Buat sebuah Dockerfile di dalam direktori dan tulis konten berikut:

# Base Ubuntu official image
FROM ubuntu:latest

# Maintainer information (optional)
LABEL maintainer="your-email@example.com"

# Update package list and install basic tools
RUN apt update && apt install -y curl vim git

# Set working directory
WORKDIR /workspace

# Default command when the container starts
CMD ["bash"]

3. Bangun Image Docker

Bangun image kustom dari Dockerfile Anda:

docker build -t my-ubuntu-image .

Opsi -t memberikan nama pada image.

4. Verifikasi Image

Periksa image yang baru Anda bangun:

docker images

5. Jalankan Kontainer

Mulai sebuah kontainer dari image kustom:

docker run -it my-ubuntu-image

Image ini mencakup alat-alat seperti curl dan vim.

5. Menyiapkan Lingkungan Jepang di Kontainer Ubuntu

Image Ubuntu default menggunakan lingkungan bahasa Inggris. Untuk menggunakan bahasa Jepang, diperlukan konfigurasi tambahan.

Mengatur Locale Jepang

Untuk mengaktifkan tampilan dan input bahasa Jepang di dalam kontainer Ubuntu, instal locale Jepang.

1. Instal Paket yang Diperlukan

apt update
apt install -y language-pack-ja locales

2. Konfigurasikan Locale

Buat dan terapkan locale:

locale-gen ja_JP.UTF-8
update-locale LANG=ja_JP.UTF-8

3. Terapkan Pengaturan

export LANG=ja_JP.UTF-8

Menyiapkan Input Jepang

Untuk memasukkan karakter Jepang di terminal, instal ibus-mozc:

apt install -y ibus-mozc

Jika menggunakan aplikasi GUI, tambahkan variabel lingkungan berikut:

export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus

Menggunakan Aplikasi GUI

Untuk menjalankan aplikasi GUI di dalam kontainer Docker, gunakan X server pada mesin host.

Jalankan kontainer dengan X11 diaktifkan:

docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix my-ubuntu-image

6. Mengoptimalkan dan Meminimalkan Image Docker

Image Docker dapat dioptimalkan untuk meningkatkan kecepatan startup kontainer dan mengurangi penggunaan penyimpanan. Berikut beberapa teknik untuk membuat image yang ringan.

Cara Membuat Image Berbasis Ubuntu yang Ringan

Image ubuntu:latest default relatif besar. Menggunakan opsi yang lebih ringan seperti ubuntu:minimal membantu mengurangi ukuran kontainer.

FROM ubuntu:minimal

Opsi lain adalah menggunakan Alpine Linux, yang jauh lebih kecil dibandingkan Ubuntu.

FROM alpine:latest
RUN apk add --no-cache bash curl

Menggunakan Alpine dapat mengurangi ukuran image beberapa ratus megabyte.

Mengurangi Ukuran Image dengan Menghapus File yang Tidak Diperlukan

Anda dapat mengurangi ukuran gambar dengan menghapus file cache yang tidak perlu yang dibuat oleh apt-get.

RUN apt update && apt install -y curl vim \
    && apt clean \
    && rm -rf /var/lib/apt/lists/*

Secara khusus, perintah rm -rf /var/lib/apt/lists/* menghapus daftar paket dan data yang tidak digunakan.

Menggunakan Multi-Stage Builds

Multi-stage builds memungkinkan Anda menggunakan alat hanya selama proses build sambil menjaga gambar akhir tetap ringan.

FROM ubuntu as builder
RUN apt update && apt install -y gcc

FROM ubuntu:minimal
COPY --from=builder /usr/bin/gcc /usr/bin/gcc

Dengan cara ini, Anda menghindari memasukkan alat pengembangan ke dalam gambar akhir, yang menghasilkan jejak yang jauh lebih kecil.

7. Contoh Praktis: Pengembangan Aplikasi di Container Ubuntu

Bagian ini memperkenalkan cara menyiapkan lingkungan pengembangan di dalam container Ubuntu.

Menyiapkan Lingkungan Pengembangan Python

Buat Dockerfile berikut untuk menyiapkan lingkungan pengembangan Python di container Ubuntu:

FROM ubuntu:latest
RUN apt update && apt install -y python3 python3-pip
CMD ["python3"]

Bangun gambar dan jalankan container:

docker build -t python-dev .
docker run -it python-dev

Lingkungan ini memungkinkan Anda menggunakan perintah python3 untuk pengembangan dan pengujian skrip.

Menyiapkan Lingkungan Pengembangan Node.js

Untuk menyiapkan lingkungan pengembangan Node.js, gunakan Dockerfile berikut:

FROM ubuntu:latest
RUN apt update && apt install -y nodejs npm
CMD ["node"]

Bangun dan jalankan container:

docker build -t node-dev .
docker run -it node-dev

Lingkungan ini memungkinkan eksekusi JavaScript dan pengembangan aplikasi dengan perintah node.

8. FAQ & Pemecahan Masalah

Menggunakan Docker dapat menyebabkan berbagai masalah. Berikut adalah pertanyaan umum dan solusi tipikal.

Perbedaan Antara Docker dan Mesin Virtual

  • Docker : Berbagi kernel OS host, membuatnya ringan dengan startup container yang cepat.
  • Mesin Virtual (VM) : Setiap VM menyertakan OS sendiri, yang menghasilkan penggunaan sumber daya yang lebih tinggi dan startup yang lebih lambat.

Docker unggul dalam optimalisasi sumber daya dan cocok untuk lingkungan pengembangan serta penerapan otomatis.

Mempertahankan Data di Container Ubuntu

Untuk mempertahankan data bahkan setelah container berhenti, gunakan volume mounts:

docker run -v my_data:/data ubuntu

Bahkan jika container dihapus, data yang disimpan di volume my_data dapat digunakan kembali.

Kesalahan Umum dan Solusi

1. Kesalahan permission denied

Jika Anda melihat permission denied saat mencoba menjalankan Docker, pengguna Anda mungkin tidak termasuk dalam grup docker.

Tambahkan pengguna ke grup Docker:

sudo usermod -aG docker $USER

Keluar dan masuk kembali untuk menerapkan perubahan.

2. Kesalahan image not found

Jika gambar telah dihapus dari Docker Hub, tentukan tag yang lebih baru saat menarik:

docker pull ubuntu:22.04

Menentukan versi yang eksplisit memastikan bahwa gambar yang benar diambil.