Banyak aplikasi AI agent sekarang meminta kita memasang Docker.
Bagi pemula seperti saya, Docker sering terlihat seperti sesuatu yang rumit.
Padahal, konsep dasarnya cukup sederhana, dari yang saya pahami, Docker membantu kita menjalankan aplikasi di dalam lingkungan yang terpisah agar tidak mengganggu aplikasi lain.
Dalam praktiknya, Docker sangat berguna ketika kita memiliki beberapa aplikasi dengan kebutuhan yang berbeda-beda.
Satu aplikasi mungkin membutuhkan Node.js, aplikasi lain membutuhkan Go, aplikasi berikutnya membutuhkan PHP 8.2, sedangkan aplikasi lain membutuhkan PHP 8.3.
Tanpa isolasi, semua aplikasi tersebut bisa saling berebut versi dependency.
Ketika PHP di-upgrade untuk satu aplikasi, aplikasi lain bisa ikut rusak. Docker membantu setiap aplikasi memiliki “ruang” dan kebutuhan teknisnya sendiri.
Dalam artikel ini, kita akan belajar Docker dari Windows menggunakan WSL 2, kemudian memasang Hermes Agent ke dalam Docker.
Tujuannya bukan hanya agar Hermes berjalan, tetapi juga memahami apa yang sebenarnya terjadi di baliknya.
Apa Itu Docker?
Docker adalah alat untuk menjalankan aplikasi di dalam container.
Container dapat dibayangkan seperti ruangan khusus untuk sebuah aplikasi. Di dalam ruangan itu terdapat aplikasi, dependency, konfigurasi, dan kebutuhan teknisnya sendiri.
Contohnya:
- Container pertama menjalankan aplikasi Laravel dengan PHP 8.2.
- Container kedua menjalankan aplikasi lain dengan PHP 8.3.
- Container ketiga menjalankan Hermes Agent.
- Container keempat menjalankan database.
Semua aplikasi dapat berjalan pada komputer atau VPS yang sama, tetapi masing-masing memiliki lingkungan yang lebih terpisah.
Mengapa Docker Penting?
Bayangkan sebuah VPS yang menjalankan banyak aplikasi secara langsung:
VPS
├── Aplikasi Laravel
├── Aplikasi Node.js
├── Aplikasi Go
├── Hermes Agent
└── Database
Jika semua aplikasi memakai dependency langsung dari sistem VPS, masalah dapat muncul ketika versi salah satu dependency berubah.
Misalnya:
- Aplikasi A membutuhkan PHP 8.2.
- Aplikasi B membutuhkan PHP 8.3.
- Admin VPS meng-upgrade PHP ke 8.3.
- Aplikasi A kemudian mengalami error.
Dengan Docker, setiap aplikasi dapat memiliki lingkungan masing-masing:
VPS
├── Container Laravel PHP 8.2
├── Container Laravel PHP 8.3
├── Container Node.js
├── Container Go
└── Container Hermes
Inilah salah satu alasan AI agent sering disarankan berjalan di Docker. AI agent biasanya membutuhkan Python, Node.js, browser automation, command-line tools, dan berbagai dependency lainnya.
Docker membantu dependency tersebut tidak bercampur dengan aplikasi lain.
Apakah Docker Wajib di VPS?
Tidak wajib.
Kita tetap bisa memasang aplikasi langsung di VPS. Misalnya, kita menginstal Python, Node.js, PHP, lalu menjalankan Hermes langsung di sistem VPS.
Namun Docker menjadi semakin penting ketika:
- VPS menjalankan banyak aplikasi.
- Setiap aplikasi membutuhkan versi dependency berbeda.
- Kita ingin proses instalasi mudah diulang.
- Kita ingin memindahkan aplikasi ke server lain.
- Kita ingin menghentikan atau menghapus aplikasi tanpa mengganggu aplikasi lain.
Dengan Docker, aplikasi dikemas bersama kebutuhan teknisnya. Jika suatu saat aplikasi perlu dipindahkan, kita tidak perlu mengingat semua langkah instalasi dari awal. Kita cukup menjalankan kembali konfigurasi Docker-nya.
Namun Docker bukan berarti keamanan otomatis sempurna. Container tetap harus dikonfigurasi dengan baik. Jangan sembarangan membuka port ke internet, jangan memberikan akses privileged tanpa alasan, dan jangan memasang Docker socket jika tidak diperlukan.
Apa Itu WSL?
WSL adalah singkatan dari Windows Subsystem for Linux.
WSL memungkinkan kita menjalankan lingkungan Linux di dalam Windows tanpa harus memasang dual boot atau membuat virtual machine tradisional secara manual.
Dalam praktik kita:
Windows
└── WSL 2
└── Ubuntu
Ubuntu di WSL menjadi lingkungan Linux tempat kita menjalankan perintah seperti:
docker version
docker compose up -d
docker compose logs
Docker Desktop kemudian menggunakan WSL 2 sebagai backend untuk menjalankan Docker Engine.
Hubungan Windows, WSL, Docker, dan Hermes
Arsitektur yang kita gunakan adalah:
Windows 10/11
↓
WSL 2
↓
Ubuntu
↓
Docker Desktop
↓
Docker Engine
↓
Hermes Container
↓
Hermes Agent
Fungsi masing-masing lapisan:
- Windows: sistem operasi utama.
- WSL 2: menyediakan lingkungan Linux di Windows.
- Ubuntu: distribusi Linux yang digunakan untuk menjalankan perintah.
- Docker Desktop: aplikasi Windows yang mengelola Docker.
- Docker Engine: mesin yang membuat dan menjalankan container.
- Container Hermes: lingkungan terisolasi tempat Hermes berjalan.
Instalasi Docker di Windows
1. Memeriksa virtualisasi
Docker dan WSL 2 membutuhkan virtualisasi hardware. Pemeriksaannya dapat dilakukan melalui:
Task Manager → Performance → CPU → Virtualization
Pastikan statusnya:
Virtualization: Enabled
2. Memasang WSL
Buka PowerShell sebagai Administrator, lalu jalankan:
wsl --install
Setelah selesai, Windows mungkin meminta restart. Ubuntu kemudian akan meminta kita membuat username dan password Linux.
3. Menempatkan Ubuntu di drive D:
Pada praktik ini, Ubuntu dipindahkan ke:
D:\docker\wsl\Ubuntu
File virtual disk Ubuntu berada di dalam folder tersebut. File ini bukan folder biasa, melainkan virtual hard disk WSL dengan format VHDX.
4. Memasang Docker Desktop
Docker Desktop dipasang dengan backend WSL 2. Data Docker diarahkan ke:
D:\docker\docker-data
Ini penting karena image, container, dan volume Docker dapat bertambah besar. Memindahkan data Docker ke drive D membantu mengurangi tekanan pada drive C.
5. Mengaktifkan integrasi Ubuntu
Di Docker Desktop, buka:
Settings → Resources → WSL Integration
Aktifkan distro Ubuntu, lalu klik Apply & Restart.
Validasi dari terminal Ubuntu:
docker version
Jika berhasil, akan terlihat bagian Client dan Server Docker.
Memasang Hermes ke Docker
Project Hermes dibuat di:
D:\docker\hermes
Dari Ubuntu, folder tersebut dibaca sebagai:
/mnt/d/docker/hermes
Hermes menggunakan image Docker resmi:
nousresearch/hermes-agent:latest
Konfigurasi Compose menggunakan pola berikut:
services:
hermes:
image: nousresearch/hermes-agent:latest
container_name: hermes
restart: unless-stopped
command: gateway run
ports:
- "127.0.0.1:8642:8642"
volumes:
- hermes_data:/opt/data
volumes:
hermes_data:
name: hermes_data
Port diikat ke 127.0.0.1, sehingga tidak langsung terbuka ke jaringan atau internet.
Data Hermes disimpan dalam volume Docker bernama hermes_data.
Karena Docker Desktop menggunakan data root di drive D, volume tersebut juga dikelola oleh Docker di drive D.
Menjalankan setup Hermes
Buka aplikasi Ubuntu, lalu jalankan:
cd /mnt/d/docker/hermes
docker compose run --rm hermes setup
Wizard setup akan meminta konfigurasi provider dan API key. API key tidak boleh dibagikan di chat, screenshot, atau repository.
Setelah setup selesai, jalankan Hermes sebagai service background:
docker compose up -d
Cara Memanggil Hermes
Karena Hermes kita dipasang di dalam container, perintah hermes tidak dijalankan langsung di Ubuntu host.
Gunakan:
cd /mnt/d/docker/hermes
docker compose exec -it hermes hermes
Untuk memeriksa status container:
docker compose ps
Untuk melihat log:
docker compose logs -f
Untuk restart:
docker compose restart
Untuk menghentikan Hermes:
docker compose stop
Untuk melihat penggunaan CPU dan RAM:
docker stats hermes
Konsep Docker yang Perlu Diingat
- Image adalah template aplikasi. Contohnya image Hermes.
- Container adalah aplikasi yang sedang berjalan berdasarkan image.
- Volume adalah tempat menyimpan data agar tidak hilang ketika container dibuat ulang.
- Network adalah jalur komunikasi antar-container.
- Port adalah pintu agar service bisa diakses.
- Compose adalah file konfigurasi untuk menjalankan service Docker.
Perumpamaannya:
Image = cetak biru rumah
Container = rumah yang sedang berdiri
Volume = gudang penyimpanan
Network = jalan antar-rumah
Port = pintu masuk
Compose = gambar dan aturan pembangunan kompleks
Fitur Hermes
Hermes Agent memiliki banyak fitur, antara lain:
- Chat dengan model AI.
- Gateway untuk platform pesan tertentu.
- Manajemen tools dan provider.
- Sessions dan memories.
- Scheduled tasks dan cron.
- Integrasi browser dan berbagai command-line tools.
Software Hermes dan image Docker-nya dapat digunakan sesuai lisensi project. Namun biaya penggunaan tetap bergantung pada provider model AI yang dipilih. API dari provider tertentu dapat memiliki biaya berdasarkan pemakaian.
Kesimpulan
Docker bukan sekadar aplikasi tambahan. Docker adalah cara untuk mengatur lingkungan aplikasi agar lebih rapi, terisolasi, dan mudah dipelihara.
Jika besok kita memasang aplikasi Docker lain, pola sederhananya adalah:
1. Buat folder project.
2. Siapkan compose.yaml.
3. Tentukan image.
4. Tentukan volume data.
5. Tentukan port.
6. Jalankan docker compose up -d.
7. Cek docker compose ps.
8. Cek logs dan resource.
Dalam praktik Hermes, kita belajar bahwa Windows dapat menjalankan Docker melalui WSL 2. Kita juga belajar bahwa project files, Docker image, container, volume, dan WSL virtual disk adalah hal yang berbeda.
Pemahaman inilah yang penting bagi pemula. Kita tidak hanya mengikuti perintah, tetapi memahami hubungan:
Windows → WSL → Docker Desktop → Docker Engine
→ Image → Container → Volume → Network → Application
Dengan pola ini, memasang AI agent atau aplikasi web lain di masa depan akan terasa lebih teratur dan tidak terlalu menakutkan.
Saya kasih satu rahasia lagi, saya sebenarnya gak berani berani amat install aneh aneh dan hal baru ini ke PC kalau gak di support sama Ai.
Proses ini full pakai AI Codex, beberapa sentuhan manual ketika harus kerjakan ini itu pun paling running as administrator powershell, autentikasi browser ke portal hermes, dan paste beberapa hal saja.
Hehehe. Terima kasih AI.
Anjrah.



No comment yet, add your voice below!