Machine: Proposal: berbagi mesin

Dibuat pada 30 Des 2014  ·  68Komentar  ·  Sumber: docker/machine

machine share

Abstrak

machine sedang bersiap untuk menjadi alat yang sangat baik untuk membuat dan mengelola host Docker dengan cepat dan mudah di berbagai platform virtualisasi dan penyedia hosting. Untuk berbagai alasan, menyinkronkan file antara komputer tempat machine perintah dijalankan dan mesin itu sendiri diinginkan.

Motivasi

Penampung adalah alat dan unit penerapan yang hebat dan mesin membuat tempat untuk menjalankan penampung Anda lebih mudah dari sebelumnya. Namun, ada banyak alasan mengapa seseorang ingin berbagi file yang tidak dipra-baked ke dalam image Docker dari komputer klien machine ke host mesin. Beberapa contohnya adalah:

  1. Host machine adalah VM di laptop pengguna dan mereka mengembangkan aplikasi web di dalam container. Mereka ingin mengembangkan dengan kode sumber yang dipasang di dalam wadah, tetapi masih mengedit di komputer mereka menggunakan Sublime, dll.
  2. Pengguna ingin menjalankan 10 host di cloud dan melakukan beberapa komputasi ilmiah menggunakan Docker. Mereka memiliki wadah dengan, katakanlah, pustaka Python yang mereka butuhkan, tetapi mereka juga perlu mendorong file .csv mereka ke host dari laptop mereka. Pengguna ini tidak mengetahui tentang detail implementasi machine atau cara menemukan kunci SSH untuk host, dll.
  3. Ada beberapa artefak dari build yang dijalankan pada mesin (misalnya satu atau banyak binari yang dikompilasi) dan pengguna ingin mengambil artefak itu dari remote.

Seperti sisa machine , akan lebih baik jika memiliki 80% kasus penggunaan di mana hal semacam ini terjadi terintegrasi dengan mulus ke dalam alur kerja machine , sambil tetap memberikan fleksibilitas yang cukup kepada pengguna yang terlibat 20% tidak tercakup dalam kasus penggunaan paling umum.

Antarmuka

Setelah memikirkan tentang mekanisme dan UX ini, saya pikir kita harus lebih menyukai kejelasan daripada implikasinya dan melakukan kesalahan di sisi _tidak_ membuat bagian yang tidak disengaja atau implisit.

Ada beberapa aspek cerita yang harus diperhatikan.

Garis komando

Sintaksnya akan seperti ini:

$ pwd
/Users/nathanleclaire/website

$ machine ls
NAME           ACTIVE   DRIVER         STATE     URL
shareexample   *        digitalocean   Running   tcp://104.236.115.220:2376

$ machine ssh -c pwd
/root

$ machine share --driver rsync . /root/code
Sharing /Users/nathanleclaire/website from this computer to /root/code on host "shareexample"....

$ machine share ls
MACHINE      DRIVER SRC                           DEST
shareexample rsync  /Users/nathanleclaire/website /root/code

$ ls

$ echo foo >foo.txt

$ ls 
foo.txt

$ machine ssh -c "cat foo.txt"
cat: foo.txt: No such file or directory
FATA[0001] exit status 1

$ machine share push
[INFO] Pushing to remote...

$ machine ssh -c "cat foo.txt"
foo

$ machine share --driver scp / /root/client_home_dir 
ERR[0001] Sharing the home directory or folders outside of it is not allowed.  To override use --i-know-what-i-am-doing-i-swear

IMO kita harus melarang pengguna membuat share ke atau dari luar direktori home klien _atau_ remote host. Ada argumen kuat bahwa direktori home itu sendiri juga harus dilarang berbagi, untuk mencegah berbagi file yang tidak disengaja yang harus dipindahkan dengan hati-hati seperti ~/.ssh dan, tentu saja, ~/.docker . Selain itu, klien dapat berbagi direktori ke beberapa lokasi, tetapi berbagi apa pun yang mengarah ke tujuan yang sama di jarak jauh tidak akan diizinkan.

Benar-benar terbuka untuk umpan balik dan perubahan pada UI, inilah yang saya temukan sejauh ini.

Pengemudi

Ada berbagai macam cara untuk mendapatkan file dari titik A ke titik B dan sebaliknya, jadi saya akan mengusulkan antarmuka standar yang harus diterapkan driver agar dikenali sebagai opsi untuk berbagi (seperti yang telah kita lakukan dengan virtualisasi / cloud platform). Standarnya akan menjadi sesuatu seperti scp (karena sangat sederhana dan ada di mana-mana) dan pengguna juga dapat menentukannya secara manual. Pengguna bisa memilih driver yang sesuai dengan kebutuhannya. Selain itu, ini akan memungkinkan tim machine untuk memulai dengan inti yang lebih sederhana dan bergerak maju kemudian misalnya hanya rsync , scp , dan vboxsf dapat menjadi opsi di v1.0 dan kemudian driver lain dapat ditambahkan.

Beberapa kemungkinan driver: scp , vboxsf , fusionsf , rsync , sshfs , nfs , samba

Ini akan berguna karena kasus penggunaan yang berbeda memerlukan cara berbeda untuk memindahkan file. NFS mungkin bekerja dengan baik untuk pengembangan di VM, tetapi Anda mungkin menginginkan rsync jika Anda sering mendorong file besar ke server, dan seterusnya.

Bagian dari antarmuka untuk share driver akan menjadi semacam metode IsContractFulfilled() yang mengembalikan boolean yang menunjukkan jika "kontrak" yang diperlukan agar share dapat bekerja dipenuhi oleh klien dan host jarak jauh. Ini akan memungkinkan kita untuk, misalnya, memeriksa apakah rsync diinstal pada mesin klien dan host jarak jauh, dan menolak untuk membuat share jika bukan itu masalahnya. Demikian juga, ini akan mencegah pengguna mencoba melakukan sesuatu yang konyol seperti menggunakan driver vboxsf pada host non-Virtualbox.

Masalah yang Mungkin

  • Jika machine pindah ke model klien-server, yang tampaknya disukai saat ini, ini memperkenalkan komplikasi tambahan pada implementasi machine share . Yaitu, machine share akan menjadi semua logika sisi klien, dan tidak akan dapat membuat asumsi yang sama seperti yang dibuat hari ini misalnya bahwa kunci SSH untuk host semuanya ada di sekitar siap untuk digunakan pada komputer klien .
  • machine share push dan machine share pull sangat masuk akal untuk beberapa driver, seperti rsync , tetapi tidak terlalu masuk akal untuk vboxsf atau nfs yang diperbarui secara otomatis. Apa yang terjadi jika pengguna melakukan machine share push untuk driver seperti itu? "ERR: This driver is bidirectional" ?
  • Ini kemungkinan memiliki cakupan yang cukup besar, jadi kami mungkin ingin mempertimbangkan untuk menjadikannya alat terpisah atau memperkenalkan semacam model ekstensi yang dapat menjaga intinya tetap ramping.
  • Bagaimana symlink ditangani? Izin? Apa yang terjadi jika Anda memindahkan, mengganti nama, atau menghapus direktori bersama di klien, atau di remote?

    Catatan Lainnya

Saya tidak terikat pada proposal, saya hanya mencari umpan balik dan untuk melihat apakah ada orang lain yang menganggap ini berguna. Saya telah mengumpulkan beberapa kode yang mendefinisikan antarmuka tentatif ShareDriver tetapi tidak sesuai dengan keinginan saya (dan tidak ada fungsi sinkronisasi _real_ yang diterapkan) jadi saya belum membagikannya.

kinenhancement

Semua 68 komentar

@nathanleclaire terima kasih atas proposalnya - ditulis dengan baik :)

Beberapa pemikiran awal: ide berbagi menurut saya masuk akal untuk vbox (mirip dengan apa yang direkomendasikan untuk gambar) dan kami sudah melakukannya untuk driver vbox. Namun, di luar itu, IMO mereka harus berupa gambar Docker. Saya pikir akan berguna untuk dapat menyalin file (mungkin machine scp atau sesuatu) tetapi gagasan mendorong / sinkronisasi mulai masuk ke area manajemen sistem dan saya tidak yakin kami ingin pergi ke sana .

Apakah ada kasus penggunaan lain yang dapat Anda pikirkan selain kode aplikasi?

Untuk lebih jelasnya, saya tidak menentangnya, hanya mencoba untuk lebih memahami penggunaannya :)

+1 untuk machine scp

Alasan dasar yang diberikan oleh banyak pengguna adalah bahwa ketika mereka mengembangkan, mereka ingin kode sumber ada di mesin lokal mereka, dengan begitu, ketika mereka menerbangkan contoh jarak jauh, mereka tidak perlu khawatir tentang file yang hilang. .

Saya rasa kekhawatiran ini akan ada bagi kita yang akan menggunakan daemon Docker cloud ephemeral sama seperti untuk gaya b2d.

jadi saya sangat +1 untuk ini - karena mirip dengan yang saya mulai jelajahi di https://github.com/boot2docker/boot2docker-cli/pull/247

Mungkin pengemudi lokal bisa menerapkan argumen untuk ini. Tetapi penyedia cloud seharusnya tidak memiliki ini.

scp dan / atau rsync akan bagus, sama seperti mesin saat ini ssh.

@sthulb dapatkah Anda menjelaskan mengapa tidak? ini akan menjadi pertanyaan umum, dan karenanya perlu ada di dokumen (tidak sulit membayangkan rsync oportunistik yang dapat memungkinkan server untuk berjalan dengan senang hati saat klien pergi)

Mesin lokal diarahkan untuk lingkungan pengembang. Saya merasa seperti mesin remote (cloud) untuk tujuan produksi dan dengan demikian, datanya harus disediakan dengan wadah data, atau melalui chef / puppet / ansible / etc.

Saya dapat memahami persyaratan untuk mengunggah satu file ke host jarak jauh (berbagai rahasia).

Saya bersedia terpengaruh jika orang lain merasa ini adalah hal yang harus kami miliki.

Saya harus setuju dengan @sthulb. Saya pikir kita harus menjauh dari sinkronisasi / berbagi di lingkungan terpencil. Saya bisa melihatnya sangat kuat untuk orang lokal.

Saya menggunakan samudra digital sebagai lingkungan pengembang. Saya juga memiliki 2 server boot2docker fisik non-vm yang saya gunakan untuk pengembangan dan pengujian, di mana driver share sshfs saya untuk b2d-cli sangat berguna.

Mungkin ini kasus plugin.

@hulb saya pikir itu ide yang brilian

+1 - jika Anda melihat PR yang saya buat di repo b2d-cli, saya menyalin model driver, tetapi memulai mesin dengan plugin akan lebih baik.

1 untuk scp, dan saya setuju dengan komentar di atas, proposal ini terlihat berguna untuk mesin pengembangan (Vbox, fusion), tetapi di penyedia lain saya pikir ini bisa membuat kekacauan sangat cepat.

1 untuk scp, (mungkin sftp?)

+1 untuk share VM lokal, NFS adalah opsi portabel jika share khusus driver canggung. Gelandangan melakukan hal semacam ini dengan baik :) Saya ingin melihatnya di proyek ini.

1 untuk scp

Untuk memberikan pembaruan kepada pihak yang tertarik tentang posisi kepala saya dengan yang ini: Saya ingin membuat perintah machine scp yang hanya untuk memindahkan file dari titik A ke titik B dengan satu cara melalui scp (Saya pikir saya ingin bendera --delta untuk ini juga untuk secara opsional membayar ke rsync alih-alih scp ).

Kemudian, untuk kasus penggunaan yang lebih rumit misalnya NFS / Samba, akan ada alat terpisah (masih docker-machine -centric) seluruhnya karena ruang lingkup pengelolaan ini bisa menjadi cukup besar.

Saya mulai berpikir kita harus memiliki antarmuka gaya git, dengan executable mulai docker-mesin-foo, dalam hal ini foo akan dibagikan.

Ini akan bagus untuk memperpanjang mesin.

Baru saja mencoba docker-machine v0.1.0 untuk pertama kalinya hari ini. Saya memiliki alur kerja yang melibatkan pembaruan langsung ke direktori host yang disebarkan ke volume yang dipasang di dalam wadah. Saya menggunakan argumen CLI buruh pelabuhan standar untuk mencapai ini.

  • ini berfungsi dengan baik jika saya menggunakan docker-machine create -d virtualbox dev (tidak mengherankan karena ini dibangun di atas pekerjaan boot2docker)
  • docker-machine create -d vmwarefusion dev menghasilkan mount volume yang kosong

Saya sangat terkesan dengan mesin buruh pelabuhan sejauh ini. Tes unit proyek saya (yang tidak terkait dengan volume yang dipasang) lulus seperti dulu dengan boot2docker. Selain masalah ini, ini adalah transisi yang sangat mulus dari boot2docker ke docker-machine.

@jokeyrhyme masalah fusi sudah diketahui dan sedang dikerjakan. Terima kasih atas masukan yang bagus!

1 untuk scp

@jcheros Ada di master sekarang !! https://github.com/docker/machine/pull/1140

Itu luar biasa. Pertanyaan noob: Apakah ada biner osx terbaru dan
terhebat? Biner saya belum memilikinya. Aku mencari tahu, mencari-cari
di direktori .docker, bagaimana sertifikat disimpan. Kemudian saya mengkonfigurasi file
.ssh / config sehingga saya bisa menggunakan ssh dan scp biasa. Tetapi memiliki itu built-in
jauh lebih baik.

Pada hari Selasa, 19 Mei 2015 pukul 13.05, Nathan LeClaire [email protected]
menulis:

@jcheros Ada di master sekarang !! # 1140

-
Balas email ini secara langsung atau lihat di GitHub.

@jcheroske Anda selalu bisa mendapatkan binari (master) terbaru dari sini: https://docker-machine-builds.evanhazlett.com/latest/ :)

Apakah ada pembaruan tentang ini?

Masalah Windows, rsync dan fswatch: Untuk mengurangi hooping melalui masalah github, saya merujuk secara eksplisit:
https://github.com/boot2docker/boot2docker-cli/issues/66#issuecomment -120675231

Singkatnya, untuk pengembangan serius Anda memerlukan fungsionalitas inotify (atau terkait) agar berfungsi. fswatch mengimplementasikan pustaka yang menarik, tetapi tidak mendukung API FileSystemWatch Windows. Titik awal yang baik untuk masalah ini adalah https://github.com/thekid/inotify-win/ , tetapi: thekid / inotify-win # 7

Saya telah merobek rambut saya mencoba mendapatkan volume untuk bekerja dengan docker-compose (dan docker-machine).

Tujuan saya adalah memiliki cara otomatis untuk menjalankan server situs web (untuk digunakan dengan penskalaan horizontal). Docker tampaknya alat yang bagus untuk ini. Awalnya saya hanya mengkloning kode web dari github di Dockerfile sehingga salinan kode web tinggal di setiap image / container Docker. Ini sepertinya bekerja dengan baik. Masalahnya adalah bagaimana cara menarik pembaruan kode web sehingga semua server web akan diperbarui? Saya dapat membangun kembali citra buruh pelabuhan dan kemudian mendorongnya kembali, tetapi seperti yang ditunjukkan pada poin ini, itu sangat lambat. Tampaknya jauh lebih baik untuk hanya memasang volume dengan kode web sehingga perubahan dalam kode web tidak perlu membangun kembali seluruh gambar buruh pelabuhan.

http://blog.ionic.io/docker-hot-code-deploys/

Jadi pertanyaan saya adalah: Apakah ini mungkin terjadi dengan docker-compose? Apakah mesin buruh pelabuhan juga dibutuhkan?
Sepertinya saya mengalami masalah ini: Saya sepertinya tidak berhasil memasang volume.

http://stackoverflow.com/questions/30040708/how-to-mount-local-volumens-in-docker-machine

Jika ini adalah masalah / git repo yang salah untuk pertanyaan ini, harap arahkan saya ke lokasi yang benar.

Terima kasih banyak!

Masalahnya adalah bagaimana cara menarik pembaruan kode web sehingga semua server web akan diperbarui? Saya dapat membangun kembali citra buruh pelabuhan dan kemudian mendorongnya kembali, tetapi seperti yang ditunjukkan pada poin ini, itu sangat lambat.

Nah, untuk produksi, memasang kode Anda dalam volume sebenarnya tidak terlalu tepat. Membangun kembali gambar dari cache dan mendorong ke / menarik dari registri pribadi collocated, meskipun tidak secepat rsync, seharusnya tidak terlalu buruk. Memasang volume kode sumber ke dalam penampung berbahaya karena berbagai alasan. Anda tidak lagi memiliki reproduktifitas sistem file Anda, yang merupakan salah satu jaminan terkuat Docker, dan Anda membuka diri terhadap berbagai masalah seperti masalah perizinan (file dimiliki oleh pengguna yang berbeda di container dan di host), masalah versi (versi aplikasi mana yang di-deploy lagi?), dan masalah keamanan (jika seseorang menyelinap ke dalam volume Anda, file tersebut akan muncul di host selain di container).

Begitu, terima kasih banyak atas balasan yang cepat dan mendetail di @nathanleclaire
Saya kira pertanyaan saya adalah: apa gunanya volume? Hanya untuk pengembangan (non-produksi)?
Poin Anda masuk akal dan saya sendiri memiliki pemikiran yang sama ketika beralih dari solusi non-volume yang berfungsi ke mencoba menambahkan volume - dalam beberapa hal menambahkan volume tampaknya mengalahkan tujuan Docker di tempat pertama. Sepertinya mungkin begitu?

dalam beberapa hal, menambahkan volume tampaknya mengalahkan tujuan Docker sejak awal.

Dalam banyak kasus, ya.

Ada tiga kasus penggunaan utama untuk volume:

  1. Membaca / menulis ke AUFS / filesystem yang dipilih terlalu lambat untuk misalnya database, jadi Anda dapat melewati filesystem CoW dengan menentukan -v /containerpath .
  2. Anda ingin berbagi file antara penampung dan host, misalnya untuk membangun artefak dalam penampung dan memuntahkannya ke sistem file host, atau untuk berbagi cadangan / dump database.
  3. Berbagi direktori antar penampung menggunakan --volumes-from .

Banyak orang menggunakan volume dalam pengembangan untuk "hot reload" kode, karena siklus build-restart terlalu lama, dan bisa dibilang tidak terlalu buruk jika Anda memanggang kode langsung dari CI => staging => production.

Oke, terima kasih @nathanleclaire
Saya beralih kembali ke tidak lagi menggunakan volume dan sepertinya semuanya berfungsi!

: +1:

+1

+1

+1

Tentang kasus penggunaan ini:

  1. Host mesin adalah VM di laptop pengguna dan mereka mengembangkan aplikasi web di dalam container. Mereka ingin mengembangkan dengan kode sumber yang dipasang di dalam wadah, tetapi masih mengedit di komputer mereka menggunakan Sublime, dll.

Saya pikir akan lebih baik (dari sudut pandang UX) untuk hanya memperbaiki Mesin agar bekerja dengan volume seperti yang diharapkan pengguna - gunakan volume seperti tidak ada Mesin, cukup host (Win atau Mac) dan kontainer. Referensi yang bagus tentang apa yang diharapkan orang: boot2docker / boot2docker # 581

+1 untuk ini. Apakah ada pemikiran yang diberikan pada alat dua arah seperti serempak ?

Ada rencana untuk merilis ini ???

+2

IMHO driver volume sederhana seperti yang dibahas dalam masalah terkait sudah cukup. Tidak perlu perintah tambahan dari perspektif fungsional: https://github.com/docker/docker/issues/18246

Mungkin beberapa gula di sekitar driver volume buruh pelabuhan (katakanlah memilih mekanisme yang sesuai dengan os) ada di halaman lain dan bisa menjadi fitur menarik untuk 0-time dev kickstart buzzword1234.

Saya pasti berpikir masa depan terlihat jauh lebih optimis untuk mengelola ini di luar Mesin mengingat plugin volume Docker sekarang tersedia.

@nathanleclaire dan plugin mana, misalnya?

Saya (cukup?) Perlu me-mount di mesin galangan saya atau menampung folder tempat Dockerfile berada. Hanya dalam waktu pengembangan. Hanya di mesin pengembangan saya (Windows, Mac OSX, Linux). Bagaimana caranya?

Dalam produksi Docker sangat cocok.

Bagaimana cara melakukannya?

@ginolon Saya menggunakan Docker Compose untuk mendefinisikan seluruh tumpukan. Ini juga memiliki fitur yang bagus - Anda dapat menempatkan jalur relatif dalam binging volume. (relatif terhadap docker-compose.yml)

@ibobik Wow! Seperti Vagrant? Betulkah?

@ginolon Saya tidak tahu cara kerjanya di Vagrant, tapi di Compose itu seperti
ini:

web:
  image: php:7
  ports:
    - "8012:80"
  volumes:
    - ./web-sources:/var/www/html

Ini akan mengikat ke direktori web-sources apa yang ada di lokasi yang sama seperti
buruh pelabuhan-compose.yml ini.

Jan Pobořil

01-12-2015 2:09 GMT-06.00 ginolon [email protected] :

@iBobik https://github.com/iBobik Wow! Seperti Vagrant? Betulkah?

-
Balas email ini secara langsung atau lihat di GitHub
https://github.com/docker/machine/issues/179#issuecomment -160889549.

@iBobik Saya mencoba apa yang Anda katakan. Berhasil. Tapi, ada TAPI besar.

Jika saya memasukkan file ke folder "web-sources" (katakanlah "test.rb") dengan beberapa teks di dalamnya (seperti ini: "duigyjkgsdkg") dan kemudian saya menjalankan

docker run -itP docker_web bash

Saya menemukan folder web-source, lalu di dalamnya saya jalankan

ruby test.rb

dan itu mengatakan kepada saya:

test.rb:1:in `<main>': undefined local variable or method `duigyjkgsdkg' for main:Object (NameError)

Sekarang saya membuka SublimeText saya di Windows, memodifikasi file test.rb dengan ini:

puts "Hello!"

tetapi di bash di buruh pelabuhan itu tidak memperbarui konten file. Sudah error yang sama seperti sebelumnya:

test.rb:1:in `<main>': undefined local variable or method `duigyjkgsdkg' for main:Object (NameError)

Bagaimana melakukan?

Saya perlu menggunakan mesin host saya untuk bekerja dalam pengembangan. Seperti ini.

@ginolon Anda harus menggunakan utilitas Docker Compose untuk memulainya. Klien Docker
dengan sendirinya tidak berfungsi dengan docker-compose.yml.

Jan Pobořil

01-01-2015 3:30 GMT-06.00 ginolon [email protected] :

@iBobik https://github.com/iBobik Saya mencoba apa yang Anda katakan. Berhasil.
Tapi, ada TAPI besar.

Jika saya memasukkan file "web-sources" ke dalam folder (katakanlah "test.rb") dengan beberapa
teks di dalamnya (seperti ini: "duigyjkgsdkg") dan kemudian saya jalankan

buruh pelabuhan menjalankan -itP docker_web bash

Saya menemukan folder web-source, lalu di dalamnya saya jalankan

tes ruby.rb

dan itu mengatakan kepada saya:

test.rb: 1: di <main>': undefined local variable or method duigyjkgsdkg 'untuk main: Object (NameError)

Sekarang saya membuka SublimeText saya di Windows, memodifikasi file test.rb dengan ini:

menempatkan "Halo!"

tetapi di bash di buruh pelabuhan itu tidak memperbarui konten file. Sudah sama
kesalahan seperti sebelumnya:

test.rb: 1: di <main>': undefined local variable or method duigyjkgsdkg 'untuk main: Object (NameError)

Bagaimana melakukan?

Saya perlu menggunakan mesin host saya untuk bekerja dalam pengembangan. Seperti ini.

-
Balas email ini secara langsung atau lihat di GitHub
https://github.com/docker/machine/issues/179#issuecomment -160907767.

@iBobik bagaimana cara memulai dengan buruh pelabuhan-menulis?

Jika saya menulis:

docker-compose run web bash

itu mengatakan kepada saya:

docker-compose run web bash
ERROR: Interactive mode is not yet supported on Windows.
Please pass the -d flag when using `docker-compose run`.

Docker memang berantakan. Saya pikir tidak sebagus kelihatannya.

Kami tidak berada di forum dukungan Docker Compose, jadi tolong jangan membahasnya di sana. Orang-orang berlangganan masalah ini karena topik lain.

Baca tutorial tentang Docker Compose di docker.com. Ini adalah utilitas yang hebat, Anda hanya salah menggunakannya.


    1. 2015 v 4:36, ginolon [email protected] :

Docker memang berantakan. Saya pikir tidak sebagus kelihatannya.

-
Balas email ini secara langsung atau lihat di GitHub https://github.com/docker/machine/issues/179#issuecomment -160929345.

+1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1

berbagi virtualbox saat ini kinerja terbatas dan memiliki masalah izin dengan beberapa wadah (misalnya postgresql)

+1

+1

jadi solusinya apa? apa yang harus saya lakukan di mac saya? ヽ (゜ Q。) ノ?

Tolong, tulis di sana hanya komentar yang membangun. Tidak ada „+1“, karena sudah terkirim
untuk semua pelanggan dan mereka akan berhenti berlangganan jika terlalu banyak.

Jika Anda ingin mendukung masalah ini, cukup berlangganan saja.

Jan Pobořil

01-11 2016 5:03 GMT + 01.00 daben1990 [email protected] :

+1 + 1 + 1, mengharapkannya untuk waktu yang lama.

-
Balas email ini secara langsung atau lihat di GitHub
https://github.com/docker/machine/issues/179#issuecomment -170426671.

Menjalankan perintah ini berfungsi dengan baik untuk menyalin antar mesin pengembangan di jaringan yang sama:

rsync -chavzP --stats other-computer.local:~/.docker/machine/ ~/.docker/machine/ --exclude machines/default --exclude cache

+1

Akhirnya saya menemukan masalah yang tepat, @nathanleclaire Saya yakin volume buruh pelabuhan CIFS / NFS, seperti yang diterapkan oleh https://github.com/gondor/docker-volume-netshare akan segera menyelesaikan masalah. Namun itu harus diintegrasikan dengan mulus ke dalam boot2docker. Apakah itu mungkin?

Saya pikir https://github.com/docker/docker/pull/20262 bisa menjadi kedatangan untuk jawaban akhir ini.
Dengan PR ini, di 1.11, berbagi akan menjadi pertanyaan untuk mengekspos share nfs / samba yang tepat pada host. Atau belum github.com/docker/docker/pkg/mount mendukung nfs / samba?

Saya menggunakan sesuatu di sepanjang baris ini untuk tetap sinkron:

fswatch -o -e '.git' . | while read num ; \
do \
     rsync -avzh -e "ssh -i /path/to/home/.docker/machine/machines/machine-name/id_rsa" --progress --exclude '.git' . ubuntu@$(docker-machine ip machine-name):/home/ubuntu; \
done

edit: salah ketik

Sangat tertarik dengan fitur ini juga, mendaftar untuk mendapatkan notifikasi.

IMO - berdasarkan utas, sepertinya penerapan termudah dan paling berguna adalah menggunakan driver standar pada gambar untuk membuat tunggangan volume khusus lokal, dan tidak mengimplementasikan fitur dari jarak jauh (jika Anda - Anda sedang melakukan itu salah, kan?).

Nilai untuk diri saya sendiri akan datang dalam pengembangan lokal dan on-the-fly ke konten dalam wadah tanpa melibatkan langkah sftp / scp / rsync (atau skrip seperti yang telah disiapkan MBuffenoir)

Sama disini. Ini harus dimiliki.

@ in10se maaf untuk mengatakan tetapi Mesin Docker tampaknya menjadi produk mati. Pengembangan dan inovasi mengalami stagnasi dan saya tidak akan mengandalkannya untuk lingkungan produksi. Saya pikir Hashicorp Terraform atau alat serupa adalah cara yang harus dilakukan.

@erkie , sepertinya aktivitas telah melambat dalam beberapa bulan terakhir. Semoga ini akan dilanjutkan. Terima kasih untuk sarannya.

Bagaimana keadaan proposal ini?

Tidak banyak yang terjadi di sini.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat