Mengenal Docker Container untuk development environment

Mengenal Docker Container untuk development environment
Konten Halaman

Docker adalah salah satu teknologi yang sangat populer untuk menunjang kebutuhan infrastruktur aplikasi, tetapi docker ini populer karena bisa diprogram bisa kita otomatisasi membangun sebuah image atau wadah yang terisolasi, sehingga menjadikan docker sebagai virtualisasi berupa sistem operasi.

Mengenal lebih dalam Docker Container serta istilah-istilah dalam dockerize, untuk kebutuhan DevOps CI/CD melakukan isolasi aplikasi menggunakan Docker Container.

Docker merupakan platform yang memungkinkan anda untuk “membangun, mengirim, dan menjalankan aplikasi apa pun, di mana pun.” Docker berkembang pesat dalam waktu yang sangat singkat dan sekarang dianggap sebagai standar di dunia industri untuk memecahkan salah satu aspek perangkat lunak yang paling mahal dalam hal penyebaran infrastruktur di berbagai tempat.

Beberapa pertanyaan praktis penting muncul: mengapa harus menggunakan Docker, dan untuk apa? jawaban singkat untuk “menyapa” yaitu bahwa dengan memudahkan pekerjaan di sisi infrastruktur, Docker dapat membantu bisnis untuk tidak mengeluarkan banyak pengeluaran uang dengan cepat.

docker container virtualisasi os

MENGGANTI MESIN VIRTUAL (VMS)

Docker digunakan menggantikan VM, Docker lebih cepat daripada VM untuk booting, lebih ringan untuk dijalankan, dan di karena sistem file yang berlapis, sehingga dapat lebih mudah dan cepat berbagai perubahan dengan orang lain di dalam team pengembangan software.

PROTOTYPING SOFTWARE

Jika kita ingin melakukan eksperimen dengan aplikasi dengan cepat tanpa mengganggu penyiapan yang ada atau melalui kerumitan penyediaan VM, Docker dapat memberi kita lingkungan yang cepat dalam hitungan sekian detik untuk deploy.

Proses terjadi tanpa memerlukan akses khusus apapun ke infrastruktur yang dibangun. maka tim bertanggung jawab atas aplikasi dapat mengambil bagian dalam spesifikasi lingkungan bersama dengan tim bertanggung jawab atas server.

Docker Engine

Docker Engine adalah perangkat lunak dasar untuk menyelesaikan solusi. Daemon adalah bertanggung jawab atas wadah dan klien yang digunakan untuk mengirim perintah ke Daemon.

Docker Compose

Docker Compose adalah alat untuk mendefinisikan dan menjalankan beberapa wadah Docker. Itu memungkinkan untuk mengkonfigurasi semua parameter yang diperlukan untuk mengeksekusi setiap wadah dari file definisi. file ini kita mendefinisikan setiap kontainer sebagai layanan, yaitu, untuk booting, setiap kali teks bertugas menyebutkan layanan, seperti port yang dibuka, variabel environment, dll.

Dengan Docker Compose juga dapat menentukan volume dan jaringan mana dibuat untuk digunakan layanan, maka tidak perlu membuatnya secara manual sehingga layanan sampai menggunakan sumber daya jaringan dan volume tambahan.

File definisi Docker Compose adalah tempat di mana semua lingkungan ditentukan (jaringan, volume, dan layanan); itu ditulis sesuai dengan format YAML. Sebagai standar, file ini bernama docker-compose.yml .

Contoh docker-compose file

version: '3'
services:
  web:
    build: .
      context: ./dir
      dockerfile: Dockerfile-alternate
      args:
        versao: 1
      ports:
        - '5000:5000'
  redis:
    image: redis

Penjelasan:

version: '3'
  • Pada tingkat awal script compose yang memiliki arti layanan sebuah versi.

version: '3'
services:
  • Pada tingkat penulisan kedua (di sini dilakukan dengan dua spasi) disini memiliki nama layanan pertama dari sebuah file, yang diberikan nama “web” untuk kebutuhan definisi layanan, yang nantinya dari penulisan script berikutnya, semua yang ditentukan dari nama layanan ini menjadi bagian dari nama layanan ini.

version: '3'
services:
  web:
  • Pada tingkat indentasi berikutnya kami memiliki definisi pertama dari layanan web yang, dalam hal ini, adalah build68 yang menginformasikan bahwa layanan ini akan dibuat bukan dari gambar yang ada, tetapi akan dibuat diperlukan untuk membangun citra anda sebelum menjalankannya. Itu juga membuka script baru untuk membuat parameter operasi gambar ini membangun.

version: '3'
services:
  build: .
  • Pada level indentasi berikutnya memiliki parameter build yang, dalam hal ini, adalah konteksnya. Ini bertanggung jawab untuk menginformasikan konteks file mana digunakan untuk membangun gambar yang diberikan; dengan kata lain, hanya file yang ada di folder ini yang dapat digunakan dalam pembuatan gambar. Konteks yang dipilih adalah ”./dir”, artinya, ini menunjukkan bahwa folder bernama dir, yang berada di tingkat sistem file yang sama dengan docker-compose.vml atau tempat perintah ini akan dijalankan, akan digunakan sebagai konteks dalam penciptaan gambar ini. Ketika, segera setelah kunci, nilai diberikan, ini menunjukkan bahwa tidak ada script dibuka.

  build: .
    context: ./dir

Pada level indentasi definisi konteks yang sama, yaitu, masih di blok definisi build, kita memiliki dockerfile, yang menunjukkan nama file digunakan untuk membangun image yang diberikan. Ini akan sama dengan parameter “-f” dari perintah build docker. Jika definisi ini tidak ada, penulisan buruh pelabuhan, sebagai standar, akan mencari file bernama Dockerfile di dalam folder yang diinformasikan dalam konteks.


build: .
  context: ./dir
  dockerfile: Dockerfile-alternate

Pada level lekukan yang sama dari definisi dockerfile, yaitu, masih di blok definisi build, kita memiliki argumen, yang mendefinisikan argumen digunakan oleh Dockerfile; ini mirip dengan parameter “–build-args” dari perintah build docker. Karena nilainya tidak diinformasikan di baris yang sama, terbukti bahwa itu membuka script baru.

Pada level indentasi berikutnya memiliki kunci “versi” dan nilai “1”, yaitu, karena definisi ini adalah bagian dari argumen script, kunci nilai ini adalah satu-satunya argumen yang dikirim ke Dockerfile; dengan kata lain, file Dockerfile yang diberikan harus disiapkan untuk menerima argumen ini atau akan hilang dalam pembuatan gambar.

 build: .
  context: ./dir
  dockerfile: Dockerfile-alternate
  args:
    versao: 1

Kembali ke dua level indentasi (kurang empat spasi dalam kaitannya dengan baris sebelumnya), kita memiliki definisi port, mirip dengan parameter “-p” dari perintah run container Docker. Ini menentukan port container mana diekspos di host Docker. Dalam contoh kita, akan menjadi port container *5000, dengan port host Docker 5000.


web:
  build: .
  ...
  ports:
    "5000:5000"
  • Kembali satu tingkat lekukan (dua spasi lebih sedikit dalam kaitannya dengan baris sebelumnya), kami meninggalkan script layanan web; ini menunjukkan bahwa tidak ada definisi yang diinformasikan pada baris ini diterapkan ke layanan ini, yaitu, kita perlu memulai script layanan baru, yang dalam contoh kita akan diberi nama redis.

redis:
  image: redis
  • Pada tingkat indentasi berikutnya , memiliki definisi pertama dari layanan redis, yang dalam hal ini adalah gambar, yang bertanggung jawab untuk menunjukkan gambar mana digunakan untuk memulai wadah ini. Gambar ini akan ditemukan di repository yang dikonfigurasi pada host Docker, yaitu hub.docker.com secara default.

Mengeksekusi Docker melalui docker-compose

Setelah memahami dan membuat file definisi anda sendiri, kita perlu mengelolanya dengan menggunakan biner docker-compose; opsi penggunaan yang paling umum adalah sebagai berikut:

docker-compose up

Mengelola beberapa container Docker dengan Docker Compose • build : Digunakan untuk membangun semua image layanan dijelaskan dengan definisi membangun di script mereka. • up : Memulai semua layanan ada di docker-compose.yml. • stop : Menghentikan semua layanan ada di file docker-compose.yml. • ps : Mencantumkan semua layanan dimulai dari file docker-compose.yml.

Docker Machine

Docker Machine adalah alat yang memungkinkan untuk membuat dan menjaga lingkungan Docker di mesin virtual, lingkungan cloud, dan bahkan di mesin fisik.