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

Bagaimana Konteks Docker Memungkinkan Anda Bekerja dengan Banyak Host

Konteks di CLI Docker menyediakan mekanisme yang disederhanakan untuk berinteraksi dengan beberapa titik akhir Docker. Anda dapat mengatur konteks untuk setiap host Anda dan beralih di antara mereka dengan cepat.

Saat konteks aktif, Docker akan mengarahkan semua perintah Anda ke host itu. Jika Anda kebanyakan menggunakan instalasi Docker lokal tetapi terkadang perlu memulai container dalam produksi, konteks Docker adalah salah satu opsi yang tersedia untuk Anda.

Titik akhir Docker apa pun yang valid dapat diubah menjadi konteks. Anda dapat menyambungkan penginstalan Docker Engine reguler, kluster Docker Swarm, dan kluster Kubernetes di cloud. Setiap konteks yang tersimpan berisi semua informasi koneksi untuk host yang dirujuk.

Membuat Konteks

Konteks dikelola dengan docker context memerintah. Anda membuat konteks baru menggunakan docker context create . Anda harus memberikan nama untuk konteks Anda serta konfigurasi titik akhirnya.

Berikut cara membuat konteks yang terhubung ke soket Docker yang diekspos melalui TCP pada host jarak jauh:

docker context create remote-host --docker host=tcp:///my-remote-host:2735

Konteks menggunakan Docker Swarm sebagai orkestra wadah default mereka. Anda dapat mengatur ini secara eksplisit menggunakan tanda:

docker context create remote-host 
    --default-stack-orchestrator=swarm 
    --docker host=tcp:///my-remote-host:2735

Untuk membuat koneksi ke Kubernetes, ubah tipe orkestra. Anda juga harus menambahkan --kubernetes tandai dan tentukan path ke file konfigurasi Kubernetes:

docker context create kubernetes-host 
    --default-stack-orchestrator=kubernetes 
    --kubernetes config-file=/home/username/.kube/config 
    --docker host=unix:///var/run/docker.sock

Memilih Konteks

Konteks aktif diaktifkan menggunakan docker context use . Berikan nama konteks yang ingin Anda aktifkan.

docker context use remote-host

Semua perintah CLI berikutnya akan dieksekusi menggunakan titik akhir yang diberikan oleh konteks baru. Konteks aktif akan secara otomatis bertahan sampai Anda mengubahnya. Untuk beralih ke konteks yang berbeda, jalankan docker context use lagi. Anda dapat kembali ke konteks default dengan soket Docker lokal Anda dengan meneruskan default sebagai nama konteks.

Anda selalu dapat mengganti konteks yang dipilih dengan menambahkan --context tandai ke perintah Docker apa pun:

docker run ubuntu:latest --context remote-host

DOCKER_CONTEXT variabel lingkungan juga berfungsi sebagai alternatif dari --context bendera. Mekanisme mana pun memfasilitasi peralihan sementara ke konteks yang berbeda tanpa membuat Anda menjalankan dan mengembalikan docker context use perintah.

Menggunakan DOCKER_HOST variabel lingkungan akan menimpa konteks aktif juga. Variabel ini memaksa Docker untuk menggunakan titik akhir daemon tertentu, bukan yang disediakan oleh konteks.

Anda dapat memeriksa konteks aktif dengan menjalankan docker context ls . Perintah ini mencantumkan semua konteks yang tersedia dalam konfigurasi CLI Anda. Konteks aktif disorot dengan tanda bintang. Untuk menghapus konteks, jalankan docker context rm , menyediakan nama konteks. Tidak mungkin menghapus default konteks.

Menyinkronkan Konteks antar Mesin

File konteks disimpan di direktori konfigurasi Docker CLI Anda. Ini biasanya $HOME/.docker di Linux. Anda akan menemukan konteks Anda di contexts subdirektori. Setiap konteks mendapatkan foldernya sendiri yang diberi nama dengan hash unik. Di dalam, Anda akan menemukan meta.json file yang menjelaskan konteksnya. Hanya konteks yang dibuat yang memiliki file yang disimpan di disk. default konteks mewarisi pengaturan dari konfigurasi daemon Docker Anda.

Jika Anda ingin menyinkronkan konfigurasi konteks, Anda dapat mencadangkan contexts folder untuk memindahkannya ke komputer lain. Anda dapat menggunakan transfer Rsync atau repositori Git untuk menyederhanakan pembaruan rutin. Menyelaraskan folder ke jaringan berbagi mungkin juga menjadi opsi tergantung pada kebutuhan Anda.

Docker juga memungkinkan Anda mengekspor dan mengimpor konteks melalui CLI:

docker context export my-context

Ini akan membuat my-context.dockercontext file di direktori kerja Anda. File menyertakan meta.json konten serta beberapa informasi tambahan, seperti nama konteks. Transfer file ini ke komputer lain dan jalankan docker context import my-context.dockercontext untuk memuat konfigurasi konteks.

Atau, Anda dapat mengekspor file konfigurasi Kubernetes mandiri untuk konteks Kubernetes:

docker context export kubernetes-context --kubeconfig

Ini akan menghasilkan file “kubeconfig” biasa yang kompatibel dengan alat ekosistem Kubernetes seperti kubectl . Kemampuan untuk memperoleh file kubeconfig dari konteks Docker meningkatkan interoperabilitas toolchain. Tidak ada dalam file yang spesifik untuk CLI Docker.

Jika Anda perlu mengedit konteks, gunakan docker context update memerintah. Ini menerima flag yang sama dengan docker context create . Jika Anda membuat pembaruan massal, Anda dapat mengedit meta.json file untuk langsung memanipulasi konteks Anda. Anda dapat memeriksa meta.json konteks file dari CLI dengan docker context inspect my-context .

Kesimpulan

Konteks Docker berguna saat Anda perlu men-deploy container di beberapa lingkungan independen. Anda dapat menyiapkan konteks untuk soket Docker lokal, server staging tim bersama, dan server Kubernetes produksi Anda.

Docker memiliki dukungan bawaan untuk cloud container Microsoft Azure dan Amazon ECS, yang juga dapat ditambahkan sebagai konteks. Tidak ada batasan jumlah konteks yang dapat Anda buat, sehingga Anda memiliki keserbagunaan yang baik saat berpindah antar host.

Bisa dibilang masalah fungsional terbesar dengan konteks adalah kemungkinan menjalankan perintah secara tidak sengaja terhadap konteks yang salah. Jika Anda lupa bahwa Anda sedang dalam production konteks, menjalankan docker rm database-container dapat memiliki konsekuensi yang menghancurkan. Jika ragu, jalankan docker context ls pertama untuk memeriksa apa yang telah Anda pilih.


Docker
  1. Cara Menginstal WordPress dengan Docker, Panduan yang Mudah Diikuti

  2. Cara Menambahkan Banyak Host di phpMyAdmin

  3. Cara Memindahkan Gambar Docker antar Host

  1. Cara Menginstal Jenkins dengan Docker

  2. Cara Menyebarkan Layanan Mikro dengan Docker

  3. Cara Menyebarkan Aplikasi dengan Rancher

  1. Cara Menyebarkan Wadah nginx dengan Docker di Linode

  2. Cara Berbagi Gambar Docker Dengan Orang Lain

  3. Cara bekerja dengan beberapa versi java di Linux