Worked Fine in Dev, Ops Problem now😇
Apa itu Docker?
Bahasan tentang docker adalah salah satu bahasan yang paling saya hindari karena paling sulit untuk dimengerti. Artikel ini dibuat untuk membantu kalian dan tentunya saya, memahami docker dengan istilah yang mudah dimengerti dan mudah dipahami.
Docker adalah platform perangkat lunak yang memungkinkan Anda membuat, menguji, dan menerapkan aplikasi dengan cepat. Docker mengemas perangkat lunak ke dalam unit standar yang disebut kontainer yang memiliki semua yang diperlukan perangkat lunak agar dapat berfungsi termasuk pustaka, alat sistem, kode, dan waktu proses. Dengan menggunakan Docker, Anda dapat dengan cepat menerapkan dan menskalakan aplikasi ke lingkungan apa pun dan yakin bahwa kode Anda akan berjalan. — AWS
Kalau dibaca dari kutipan AWS diatas, dapat dikatakan bahwa docker adalah alat yang memanfaatkan wadah (kontainer) untuk membuat, menyebarkan dan menjalankan aplikasi dengan mudah. Dengan adanya wadah, kita bisa memisahkan aplikasi dari infrastruktur kita. Memisahkan aplikasi berarti bahwa konfigurasi apapun di aplikasi yang kita buat tidak mempengaruhi infrastruktur kami. Loh emangnya kenapa harus dipisahkan? tentunya karena setiap aplikasi memiliki konfigurasi dan environment sendiri.
Kenapa sih harus pake docker?
Berdasarkan dari website AWS yang saya baca, katanya sih fungsinya gini:
- Menggunakan Docker memungkinkan mengirimkan kode lebih cepat
- Menstandardisasi operasi aplikasi
- Memindahkan kode dengan lancar
- Menghemat uang dengan meningkatkan pemanfaatan sumber daya
- Mendapatkan satu objek yang dapat dijalankan di mana saja
- Melakukan konfigurasi mesin untuk lingkungan aplikasi itu sangat sulit dan akan memakan banyak waktu. Kita harus menginstal terus menerus tiap ingin menjalankan aplikasi yang berbeda. Docker dapat membantu hal tersebut agar terasa mudah.
- Docker memiliki package yang banyak dan dapat diinstal dengan mudah
- Docker memiliki registri pribadi dan publik yang dapat digunakan untuk berkolaborasi dalam tim Anda.
- Docker itu open source juga loh!
Siapa yang menggunakan Docker?
Jadi siapa yang menggunakan Docker pada sistem mereka? Apakah startup? Perusahaan berkembang? Atau bahkan perusahaan besar?. Menurut data yang dikeluarkan oleh situs Datadog, ternyata ditemukan bahwa perpindahan sistem lama yang diganti ke Docker dimulai oleh perusahaan-perusahaan besar yang memiliki lebih dari 500 hosts.
Perkembangan Docker dari masa ke masa
Fitur fitur pada Docker
Berikut adalah contoh contoh fitur pada docker
- Docker Engine, digunakan untuk membangun Docker images dan membuat kontainer Docker.
- Docker Hub, registry yang digunakan untuk berbagai macam Docker images
- Docker Compose, digunakan untuk mendefinisikan aplikasi menggunakan banyak kontainer Docker.
- Docker untuk Mac, memungkinkan menjalankan kontainer Docker pada Mac.
- Docker untuk Linux, memungkinkan menjalankan kontainer Docker pada Linux.
- Docker untuk Windows, memungkinkan menjalankan kontainer Docker pada Windows.
Kelebihan dan kekurangan menggunakan docker
Kelebihan :
- Kelebihan pertama Docker adalah konfigurasi yang diterapkan cukup sederhana dan bisa disesuaikan dengan kebutuhan aplikasi yang sedang dikembangkan.
- Tidak hanya berjalan pada satu platform cloud saja, Docker bisa dijalankan di berbagai platform cloud sehingga membuat Docker cukup fleksibel.
- Saat melakukan upgrade komponen biasanya seluruh lingkungan akan dipecah. Jika terjadi masalah pada proses tersebut, Docker mempunysi fitur agr bisa langsung melakukan roolback ke versi sebelumnya melalui image Docker.
- Fleksibilitas berjalan pada segala macam sistem operasi membuat aplikasi yang menggunakan Docker dapat dilakukan pengujian dengan mudah dilakukan.
- Docker memastikan aplikasi yang berjalan tidak bisa mempengaruhi kontainer atau bahkan memberikan kontrol penuh atas manajemen dan arus lalu lintas.
- Dokumentasi yang sangat bagus.
Kekurangan :
- Sampai saat ini saya masih belum menemukan kekurangan dalam pembelajaran saya dengan docker ini. wkkwkwkwk :(
Apa aja sih docker components?
- Docker image, merupakan file berisi informasi dan petunjuk untuk membangun container. Image juga berfungsi untuk menggunakan dan mengirimkan informasi;
- Container, adalah lingkungan untuk mengemas dan menjalankan aplikasi. Ini mencakup kode, runtime, system tools, dan pengaturan. Container hanya bisa mengakses resource yang telah ditentukan dalam docker image;
- Docker client, yaitu tempat di mana pengguna dapat mengirimkan perintah seperti docker build, docker pull, dan docker run kepada Docker daeomon;
- Docker Engine Rest API, digunakan untuk berinteraksi dengan Docker daemon. Ini bisa diakses klien melalui HTTP;
- Docker host, menyediakan lingkungan yang lengkap untuk menjalankan aplikasi. Dia bertanggung jawab terhadap penerimaan perintah yang diberikan Docker client;
- Docker daemon, yaitu proses pengelolaan Docker images, kontainer, network, dan storage volumes. Docker daemon menerima request dari Docker API dan akan memprosesnya;
- Docker registry, wadah untuk menyimpan Docker image. Docker image akan memberi reaksi sesuai perintah yang diberikan. Misalnya saat diberi perintah docker push, docker image akan didorong atau dibagikan ke registri Docker Hub;
- Docker Hub adalah layanan yang disediakan untuk menemukan dan berbagi gambar container dengan tim.
Cara kerja Docker
Melihat skema tersebut, kita dapat memahami bahwa cara kerja Docker seperti berikut:
Pertama, Docker client akan berbicara kepada Docker daemon melalui Rest API. Pembicaraan ini berisi perintah yang perlu dilakukan.
Seperti yang terlihat dari tanda panah, docker build berfungsi untuk membangun image. Docker pull berperan mengunduh atau menarik image dari registry. Sedangkan docker run akan menjalankan proses dalam container.
Docker daemon akan mendengarkan perintah yang diberikan, kemudian menjalankan perintah dengan mengelola objek seperti gambar, kontainer, dan lain-lain.
Yuk belajar Setup docker di Mac
- Double-click
Docker.dmg
untuk membuka installer, lalu drag docker icon ke application folder (bisa download disini https://docs.docker.com/docker-for-mac/install/) - Double-click
Docker.app
di Applications folder untuk memulai Docker. Jika Anda baru saja menginstal aplikasi, Docker Desktop meluncurkan tutorial orientasi. Tutorial ini mencakup latihan sederhana untuk membuat contoh gambar Docker, menjalankannya sebagai wadah, mendorong dan menyimpan gambar ke Docker Hub. - Klik menu Docker untuk melihat Preferensi dan opsi lainnya.
- Pilih Tentang Docker untuk memverifikasi bahwa Anda memiliki versi terbaru.
Yuk belajar Setup docker di Windows
- Klik dua kali Docker Desktop Installer.exe untuk menjalankan penginstal.
- Jika Kalian belum mengunduh penginstal (Docker Desktop Installer.exe), Kalian bisa mendapatkannya dari Docker Hub. Biasanya mengunduh ke folder Unduhan Kalian, atau Kalian dapat menjalankannya dari bilah unduhan terbaru di bagian bawah browser web Kalian.
- Saat diminta, pastikan opsi Aktifkan Fitur Windows Hyper-V atau Instal komponen Windows yang diperlukan untuk opsi WSL 2 dipilih pada halaman Konfigurasi.
- Ikuti petunjuk pada wizard penginstalan untuk mengotorisasi penginstal dan lanjutkan dengan penginstalan.
- Ketika instalasi berhasil, klik Close untuk menyelesaikan proses instalasi.
- Jika akun admin Anda berbeda dengan akun pengguna Anda, Anda harus menambahkan pengguna ke grup pengguna docker. Jalankan Manajemen Komputer sebagai administrator dan navigasikan ke Pengguna dan Grup Lokal > Grup > pengguna buruh pelabuhan. Klik kanan untuk menambahkan pengguna ke grup. Keluar dan masuk kembali agar perubahan diterapkan.
Sumber
https://eprints.akakom.ac.id/4889/3/3_123310018_BAB%20II.pdf