# Docker

# Docker - Background

Docker adalah platform open-source yang dirancang untuk mempermudah proses pengembangan, pengiriman, dan menjalankan aplikasi dalam sebuah lingkungan terisolasi yang dikenal sebagai "container." Container Docker memungkinkan developer untuk mengemas aplikasi beserta seluruh dependensinya (library, konfigurasi, dll.) dalam satu paket yang ringan dan portabel, sehingga aplikasi dapat berjalan konsisten di berbagai lingkungan, baik itu di mesin pengembangan, server produksi, atau layanan cloud.

**Sejarah Singkat Docker:** Docker pertama kali dikembangkan oleh Solomon Hykes dan dirilis pada tahun 2013 oleh perusahaan Docker, Inc. Docker diperkenalkan sebagai solusi untuk masalah "It works on my machine" yang sering dialami oleh developer ketika aplikasi yang dikembangkan di satu lingkungan tidak berfungsi dengan baik di lingkungan lain. Sejak saat itu, Docker telah menjadi salah satu teknologi container paling populer di dunia.

**Fungsi Utama Docker:**

1. **Containerization**: Docker memungkinkan pembuatan container yang berisi aplikasi beserta seluruh dependensinya sehingga bisa dijalankan di mana saja, terlepas dari perbedaan sistem operasi atau perangkat keras.
2. **Portabilitas**: Dengan Docker, aplikasi dapat dipindahkan dari satu lingkungan ke lingkungan lain dengan mudah, misalnya dari pengembangan ke produksi, tanpa harus khawatir tentang ketergantungan lingkungan.
3. **Isolasi**: Setiap aplikasi di dalam container dijalankan secara terisolasi dari sistem host dan container lain, yang berarti perubahan atau masalah dalam satu container tidak akan memengaruhi container lain.
4. **Skalabilitas**: Docker mendukung penerapan aplikasi dalam skala besar, memudahkan pengelolaan banyak container yang berjalan secara bersamaan.

**Komponen Utama Docker:**

1. **Docker Engine**: Ini adalah core atau inti dari Docker yang bertanggung jawab untuk membuat dan menjalankan container.
2. **Docker Image**: Image adalah template read-only yang digunakan untuk membuat container. Docker image berisi semua file yang diperlukan untuk menjalankan aplikasi, termasuk kode, runtime, dependensi, dan file sistem.
3. **Docker Container**: Container adalah instance dari Docker image yang berjalan. Container ini dijalankan dalam lingkungan terisolasi namun tetap ringan dibandingkan dengan virtual machine.
4. **Docker Hub**: Repositori online yang digunakan untuk menyimpan dan berbagi Docker image. Developer dapat menarik image dari Docker Hub atau memublikasikan image mereka sendiri.

**Kelebihan Docker:**

- **Efisiensi Sumber Daya**: Docker lebih ringan daripada virtual machine karena berbagi kernel dengan host sistem operasi, sehingga mengurangi overhead sumber daya.
- **Kemudahan Pengembangan**: Docker memudahkan pengembangan aplikasi dengan lingkungan yang konsisten. Developer dapat menjalankan aplikasi dalam container di mesin lokal dengan cara yang sama seperti di server produksi.
- **Continuous Integration/Continuous Deployment (CI/CD)**: Docker sangat cocok untuk otomatisasi pipeline CI/CD karena container dapat dibuat, diuji, dan di-deploy secara konsisten.

Docker saat ini digunakan secara luas dalam pengembangan aplikasi modern, khususnya dalam arsitektur berbasis mikroservis di mana setiap komponen aplikasi dapat dikemas dan dikelola secara terpisah.

# Docker - Install Docker CE

<div id="bkmrk-berikut-adalah-langk">Berikut adalah langkah-langkah untuk menginstal Docker di Ubuntu 24.04:</div><div id="bkmrk-">  
</div><div id="bkmrk-1.-perbarui-paket-si">1. Perbarui Paket Sistem</div><div id="bkmrk-sebelum-menginstal-d">Sebelum menginstal Docker, perbarui paket-paket di sistem Anda :</div><div id="bkmrk--1"></div>```
sudo apt update && sudo apt upgrade -y
```

<div id="bkmrk-2.-install-dependens">2. Unistall Docker versi lama *( Jika ada sebelumnya, jika instalasi baru skip langkah ini )*  
Jika Anda menginstal Docker versi lama, hapuslah :  
</div>```
sudo apt remove docker docker-engine docker.io containerd runc
```

3\. Install prasyarat   
Docker memerlukan beberapa dependensi untuk diinstal :

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

4\. Tambahkan GPG Key Docker  
Tambahkan GPG key resmi Docker :

```
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
```

5\. Tambahkan Repositori Docker  
Tambahkan repositori Docker ke sistem Anda :

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

6\. Perbarui Daftar Paket dan Instal Docker  
Perbarui kembali daftar paket dan instal Docker :

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

7\. Verifikasi Instalasi Docker  
Cek apakah Docker sudah terinstal dengan benar :

```
sudo docker --version
```

8\. Jalankan Docker tanpa Sudo (Opsional)  
\- Tambahkan pengguna Anda ke grup buruh pelabuhan:

```
sudo usermod -aG docker $USER
```

\- Keluar dan masuk kembali, atau jalankan :

```
newgrp docker
```

<div id="bkmrk-kemudian%2C-keluar-dan">Kemudian, keluar dan login kembali agar perubahan grup berlaku.</div><div id="bkmrk--2">  
</div><div id="bkmrk-8.-verifikasi-instal">9. Verifikasi Instalasi</div><div id="bkmrk-anda-dapat-menjalank">Anda dapat menjalankan kontainer uji untuk memastikan Docker berfungsi :  
  
</div>```
docker run hello-world
```

# Docker - Install Docker Compose

<div id="bkmrk-berikut-adalah-langk">Berikut adalah langkah-langkah untuk menginstal Docker Compose versi 2.29.7 di Ubuntu 24.04:</div><div id="bkmrk-">  
</div><div id="bkmrk-1.-pastikan-docker-s">1. Pastikan Docker Sudah Terinstal</div><div id="bkmrk-sebelum-melanjutkan%2C">Sebelum melanjutkan, pastikan Docker sudah terinstal di sistem Anda. Anda bisa mengecek dengan menjalankan perintah :</div>```
docker --version
```

<div id="bkmrk-jika-docker-belum-te">Jika Docker belum terinstal, ikuti langkah-langkah instalasi Docker sebelumnya.</div><div id="bkmrk--1">  
</div><div id="bkmrk-2.-download-docker-c">2. Download Docker Compose disini menggunakan Versi 2.29.7  
</div>[![image.png](https://notes.ilusidigital.com/uploads/images/gallery/2024-10/scaled-1680-/image.png)](https://notes.ilusidigital.com/uploads/images/gallery/2024-10/image.png)

<div id="bkmrk-download-docker-comp">Download Docker Compose versi 2.29.7 menggunakan curl :  
  
</div><div id="bkmrk--3"></div>```
sudo curl -L "https://github.com/docker/compose/releases/download/v2.29.7/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
```

3\. Berikan Izin Eksekusi pada Biner Docker Compose  
Setelah diunduh, pastikan biner Docker Compose dapat dieksekusi :

```
sudo chmod +x /usr/local/bin/docker-compose
```

4\. Verifikasi Instalasi Docker Compose  
Periksa apakah Docker Compose sudah terinstal dan pastikan versinya adalah 2.29.7 :

```
docker-compose --version
```

Output yang diharapkan:

```
Docker Compose version v2.29.7
```

6\. Instalasi Tambahan **(Opsional)**  
Jika perintah docker-compose tidak dikenali meskipun sudah diinstal, Anda mungkin perlu membuat symbolic link :

```
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
```

<div id="bkmrk-setelah-ini%2C-docker-">Setelah ini, Docker Compose versi 2.29.7 sudah siap digunakan di Ubuntu 24.04.</div>