GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Kapan dan Mengapa Menggunakan Docker

Apa itu Docker?

Sejak dirilis pada tahun 2012, Docker telah menjadi salah satu teknologi dengan pertumbuhan tercepat dalam pengembangan dan pengembangan web. Seperti halnya teknologi baru lainnya, teknologi ini masih dalam pengembangan, memiliki beberapa keterbatasan, dan tidak tepat untuk setiap proyek. Panduan ini memberikan gambaran umum tentang pro dan kontra dari Docker sehingga Anda dapat memutuskan apakah itu akan menjadi tambahan yang bagus untuk proyek Anda.

Untuk pengenalan yang lebih mendasar tentang konsep dan terminologi Docker, lihat panduan Pengantar Docker kami.

Manfaat Docker

  1. Reproduksibilitas :Mirip dengan aplikasi Java, yang akan berjalan persis sama pada perangkat apa pun yang mampu menjalankan Java Virtual Machine, wadah Docker dijamin identik pada sistem apa pun yang dapat menjalankan Docker. Spesifikasi yang tepat dari sebuah wadah disimpan dalam Dockerfile. Dengan mendistribusikan file ini di antara anggota tim, organisasi dapat menjamin bahwa semua gambar yang dibuat dari Dockerfile yang sama akan berfungsi secara identik. Selain itu, memiliki lingkungan yang konstan dan terdokumentasi dengan baik memudahkan untuk melacak aplikasi Anda dan mengidentifikasi masalah.

  2. Isolasi :Ketergantungan atau pengaturan di dalam penampung tidak akan memengaruhi penginstalan atau konfigurasi apa pun di komputer Anda, atau pada penampung lain yang mungkin sedang berjalan. Dengan menggunakan wadah terpisah untuk setiap komponen aplikasi (misalnya server web, ujung depan, dan database untuk menghosting situs web), Anda dapat menghindari dependensi yang saling bertentangan. Anda juga dapat memiliki banyak proyek di satu server tanpa khawatir akan menimbulkan konflik di sistem Anda.

  3. Keamanan :Dengan peringatan penting (dibahas di bawah), memisahkan berbagai komponen aplikasi besar ke dalam wadah yang berbeda dapat memberikan manfaat keamanan:jika satu wadah disusupi, yang lain tetap tidak terpengaruh.

  4. Pusat Docker :Untuk kasus penggunaan umum atau sederhana, seperti tumpukan LAMP, kemampuan untuk menyimpan gambar dan mendorongnya ke Docker Hub berarti sudah ada banyak gambar yang terpelihara dengan baik yang tersedia. Mampu dengan cepat menarik image atau build yang dibuat sebelumnya dari Dockerfile yang dikelola secara resmi dapat membuat proses penyiapan semacam ini menjadi sangat cepat dan sederhana.

  5. Pengelolaan Lingkungan :Docker memudahkan pemeliharaan berbagai versi, misalnya, situs web menggunakan nginx. Anda dapat memiliki wadah terpisah untuk pengujian, pengembangan, dan produksi pada Linode yang sama dan dengan mudah menerapkan ke masing-masing wadah.

  6. Integrasi Berkelanjutan :Docker berfungsi dengan baik sebagai bagian dari pipeline integrasi berkelanjutan dengan alat seperti Travis, Jenkins, dan Wercker. Setiap kali kode sumber Anda diperbarui, alat ini dapat menyimpan versi baru sebagai gambar Docker, memberi tag dengan nomor versi dan mendorongnya ke Docker Hub, lalu menerapkannya ke produksi.

Kapan Menggunakan Docker

Jika aplikasi Anda cocok dengan satu atau beberapa kategori berikut, Docker mungkin cocok:

  1. Mempelajari teknologi baru :Untuk memulai dengan alat baru tanpa menghabiskan waktu untuk instalasi dan konfigurasi, Docker menawarkan lingkungan yang terisolasi dan sekali pakai. Banyak proyek memelihara gambar Docker dengan aplikasi mereka sudah diinstal dan dikonfigurasi. Misalnya, jika Anda ingin memeriksa sistem pelacakan terdistribusi seperti Zipkin, Anda dapat memiliki pengaturan yang berfungsi di localhost hanya dengan menjalankan:

    sudo docker run -d -p 9411:9411 openzipkin/zipkin
    
  2. Kasus penggunaan dasar :Menarik gambar dari Docker Hub juga merupakan solusi yang baik jika aplikasi Anda cukup mendasar atau standar untuk bekerja dengan gambar Docker default. Kasus seperti hosting situs web menggunakan tumpukan LAMP, menggunakan proxy terbalik, atau menyiapkan server Minecraft sering kali memiliki gambar resmi atau yang didukung dengan baik yang tersedia di DockerHub. Jika konfigurasi default dalam gambar ini dapat diterima untuk kebutuhan Anda, maka menarik gambar dapat menghemat banyak waktu yang seharusnya dihabiskan untuk menyiapkan lingkungan Anda dan memasang alat yang diperlukan.

  3. Isolasi aplikasi :Jika Anda ingin menjalankan beberapa aplikasi di satu server, menyimpan komponen setiap aplikasi dalam wadah terpisah akan mencegah masalah dengan manajemen ketergantungan.

  4. Tim pengembang :Jika Anda memiliki pengembang yang bekerja dengan pengaturan yang berbeda, Docker menyediakan cara mudah untuk memiliki lingkungan pengembangan lokal yang sangat cocok dengan lingkungan produksi, tanpa perlu ssh ke kotak jarak jauh.

Kapan Tidak Menggunakan Docker

Ada juga saat-saat ketika Docker bukanlah solusi terbaik. Berikut beberapa contohnya:

  1. Aplikasi Anda rumit dan Anda tidak/tidak memiliki sysadmin. Untuk aplikasi besar atau rumit, menggunakan Dockerfile yang sudah jadi atau menarik gambar yang ada tidak akan cukup. Membangun, mengedit, dan mengelola komunikasi antara beberapa kontainer di beberapa server adalah tugas yang memakan waktu.

  2. Kinerja sangat penting untuk aplikasi Anda. Docker lebih unggul dibandingkan mesin virtual dalam hal kinerja karena container berbagi kernel host dan tidak meniru sistem operasi penuh. Namun, Docker memang membebankan biaya kinerja. Proses yang berjalan di dalam container tidak akan secepat yang berjalan di OS asli. Jika Anda perlu mendapatkan kinerja terbaik dari server Anda, Anda mungkin ingin menghindari Docker.

  3. Anda tidak ingin repot meningkatkan versi. Docker adalah teknologi baru yang masih dalam pengembangan. Untuk mendapatkan fitur baru, Anda mungkin harus sering memperbarui versi, dan kompatibilitas mundur dengan versi sebelumnya tidak dijamin.

  4. Keamanan sangat penting untuk aplikasi Anda. Seperti disebutkan di atas, menyimpan berbagai komponen aplikasi dalam wadah terpisah memberikan beberapa manfaat keamanan, karena kompromi dalam satu wadah tidak dapat dengan mudah memengaruhi sistem Anda yang lain. Namun, pendekatan containerization Docker menimbulkan tantangan keamanannya sendiri, terutama untuk aplikasi yang lebih rumit. Masalah ini dapat dipecahkan, tetapi memerlukan perhatian dari teknisi keamanan yang berpengalaman. (Lihat bagian Info Lebih Lanjut untuk tautan ke diskusi tentang masalah ini).

  5. Beberapa sistem operasi. Karena container Docker berbagi sistem operasi komputer host, jika Anda ingin menjalankan atau menguji aplikasi yang sama pada sistem operasi yang berbeda, Anda harus menggunakan mesin virtual, bukan Docker.

  6. Kluster. Wadah Docker di server terpisah dapat digabungkan untuk membentuk cluster dengan Docker Swarm. Namun, Docker tidak menggantikan alat penyediaan atau otomatisasi seperti Ansible, SaltStack, dan Chef. Selain itu, Docker baru-baru ini mengumumkan dukungan untuk Kubernetes, mengisyaratkan bahwa Docker Swarm mungkin tidak cukup sebagai manajer cluster yang berdiri sendiri.

Haruskah Anda menggunakan Docker Containers?

Docker telah menjadi cara yang sangat populer untuk mengonfigurasi, menyimpan, dan berbagi lingkungan server menggunakan wadah. Karena itu, menginstal aplikasi atau bahkan tumpukan besar sering kali semudah menjalankan docker pull atau docker run . Memisahkan fungsi aplikasi ke dalam wadah yang berbeda juga menawarkan keuntungan dalam keamanan dan manajemen ketergantungan.

Namun, Docker bukanlah pengganti rekayasa sistem atau manajemen konfigurasi, dan pendekatannya memiliki kelemahan. Pengembang harus menahan godaan untuk menyimpan setiap aplikasi yang mereka buat, hanya karena Docker adalah solusi yang populer dan ramah pengguna. Seperti halnya alat apa pun, persyaratan proyek apa pun harus diteliti dengan cermat sebelum memutuskan apakah akan menggunakan Docker.

Informasi Lebih Lanjut

Anda mungkin ingin berkonsultasi dengan sumber daya berikut untuk informasi tambahan tentang topik ini. Meskipun ini disediakan dengan harapan dapat bermanfaat, harap perhatikan bahwa kami tidak dapat menjamin keakuratan atau ketepatan waktu materi yang dihosting secara eksternal.

  • Pekerja Buruh
  • Pusat Docker
  • Kapan Tidak Menggunakan Docker
  • 5 Masalah Keamanan Saat Menggunakan Docker
  • 8 Aturan Keamanan Docker untuk Dijalani
  • Perangkat Lunak Anda Lebih Aman di Docker Containers

Docker
  1. Linux – Mengapa Kami Menggunakan Su – Dan Bukan Hanya Su?

  2. Mengapa Deis dan apa itu?

  3. Mengapa kita menggunakan su - dan bukan hanya su?

  1. Kapan Dan Mengapa Saya Harus Menggunakan Pembaruan Apt-get?

  2. Bagaimana dan Mengapa Menggunakan Host Docker Jarak Jauh

  3. Cara Menginstal dan Menggunakan Docker Compose di CentOS

  1. Cara Mengatur dan Menggunakan Registri Docker Pribadi

  2. Cara Menginstal dan Menggunakan Docker di Ubuntu 20.04

  3. Cara Menginstal dan Menggunakan Docker di Ubuntu 20.04