bagaimana cara menggunakan view.raw.php dengan benar
<p>saya mencoba menambahkan tombol <code>jtoolbar</code> khusus ke tampilan daftar saya yang akan mengekspor konten daftar ke excel. saya membuat tugas baru di daftar controller untuk membuat kelas tampilan mentah dalam file bernama view.raw.php. namun saya tidak bisa mendapatkan konten untuk memuat data mentah saja.</p><p>saya menyalin kode pengontrol yang relevan dari pengontrol com\_banners tracks.raw.php</p><p>metode pengontrol:</p><pre><code>public function exporttoexcel() { // get the document object. $document = jfactory::getdocument(); $vname = 'mylist'; $vformat = 'raw'; // get and render the view. if ($view = $this-&gt;getview($vname, $vformat)) { // get the model for the view. $model = $this-&gt;getmodel($vname); // push the model into the view (as default). $view-&gt;setmodel($model, true); // push document object into the view. $view-&gt;document = $document; $view-&gt;display(); } } </code></pre><p>dan metode tampilan tes sederhana di file view.raw.php saya:</p><pre><code>public function display($tpl = null) { echo "test"; } </code></pre><p>ini menampilkan "tes" tetapi memuat template juga.</p><p>saya sudah mencoba menggunakan <code>$document-&gt;settype('raw')</code> tetapi ini memberi saya sebuah</p><blockquote> <p>tidak dapat memuat kelas renderer</p> </blockquote><p>kesalahan.</p><p>alasan untuk ini adalah yang dicari</p><blockquote> <p>perpustakaan/joomla/dokumen/raw/renderer/modules.php</p> </blockquote><p>yang tidak ada.</p><p>mungkin saya melakukan ini dengan cara yang salah tetapi bagaimana saya harus melakukan ini dengan benar?</p>
<p>anda perlu menentukan jenis dokumen dalam panggilan url dengan <code>format=raw</code>. joomla kemudian akan secara otomatis memuat <code>view.raw.php</code> file. anda bahkan tidak memerlukan pengontrol khusus untuk itu.</p><p>untuk membuat tombol bilah alat, anda dapat menggunakan ini:</p><pre><code> $bar = jtoolbar::getinstance('toolbar'); $bar-&gt;appendbutton('custom', '&lt;button onclick="window.location.href = \'http://www.google.com\';"&gt;export&lt;/button&gt;', 'export'); </code></pre>
<p>aku akan menusuk pertanyaanmu kemarin, tapi kupikir aku harus memikirkannya terlebih dahulu.</p><p>saya benar-benar tidak bisa memberi tahu anda apa "fungsi lain" yang harus anda berikan untuk pengguna anda. saya tidak terpisah dari tim anda. sepertinya anda memaku sebagian besar dari mereka, tetapi pada akhirnya saya tidak dapat membuat keputusan atau memberikan saran ketika kami benar-benar tidak memiliki perincian lengkap tentang apa yang dilakukan aplikasi anda di luar yang memungkinkan mereka membuat formulir.</p><p>namun, saya dapat mengarahkan anda ke beberapa aplikasi lain di luar sana yang dapat memberi anda beberapa gagasan tentang fungsi apa yang dapat anda tambahkan.</p><ul> <li> <a href="http://pencil.evolus.vn/en-us/home.aspx">pensil</a> - perangkat lunak wireframing/prototyping, periksa fungsionalitasnya</li> <li> <a href="http://iplotz.com/">iplotz</a> - perangkat lunak wireframing/prototyping, periksa fungsionalitasnya</li> <li>google - <a href="http://googlesystem.blogspot.com/2007/02/learning-googles-keyboard-shortcuts.html">ikhtisar pintasan</a> </li> <li>gmail - <a href="http://mail.google.com/support/bin/answer.py?hl=en&amp;answer=6594">daftar pintasan</a> </li> <li>google documents - <a href="http://docs.google.com/support/bin/answer.py?hl=en&amp;answer=66280">daftar pintasan</a> </li> <li> <a href="http://wufoo.com/">wufoo</a> - pembuat formulir online populer, lihat apa yang mereka lakukan</li> </ul><p>anda bisa membuat semua jenis pintasan keyboard gila untuk aplikasi anda. namun, anda mungkin ingin tetap menggunakan yang paling umum digunakan, yang sepertinya sudah anda daftarkan. jika anda akan membuat pintasan baru, pastikan pintasannya intuitif bagi pengguna.</p><p>saya harap tautan itu terbukti spark beberapa ide untuk anda dan tim anda, dan maaf saya tidak bisa memberikan contoh yang tepat.</p> <ol> <li> <p>tonton video di <strong>halamannya sendiri</strong> (harus menyertakan <code>youtube.com/watch</code> mis. <code>http://www.youtube.com/watch?v=iwinbn0dhug</code> dalam url). jika anda menontonnya di saluran, klik "lihat komentar, video terkait, dan lainnya" di bawah video.</p> </li> <li> <p>klik di dalam kotak teks komentar langsung di bawah tombol jempol ke atas/bawah. (mengatakan "tanggapi video ini." di dalamnya ketika anda pertama kali mengunjungi.</p> </li> <li> <p>klik tautan "lampirkan video" di sebelah kanan kotak komentar. url halaman harus menyertakan <code>youtube.com/video\_response\_upload</code> misalnya. <code>http://www.youtube.com/video\_response\_upload?v=rehwckye3iq</code></p> </li> <li> <p>pilih dari "rekam video", "pilih video", dan "unggah video" di bilah abu-abu dan ikuti instruksi pada kotak di bawah ini. saat diposting, respons video anda akan muncul di bagian "tanggapan video" di bawah video.</p> </li> </ol> Upload File kotak adalah di mana kita're saat ini jika anda don't ingin melibatkan teknologi lainnya seperti Flash, Java atau ActiveX.


Dengan HTML anda cukup banyak terbatas pada pengalaman anda've dijelaskan (tidak ada progress bar, double menyampaikan, dll). Jika anda bersedia untuk menggunakan beberapa javascript, anda dapat memecahkan beberapa masalah dengan memberikan umpan balik yang upload sedang berlangsung dan bahkan [menunjukkan kemajuan upload](http://www.raditha.com/php/progress.php) (ini adalah hack karena anda tidak't harus melakukan full round-trip ke server dan kembali, tapi setidaknya ia bekerja).


Jika anda bersedia untuk menggunakan Flash (yang tersedia cukup banyak di mana saja dan pada banyak platform), anda dapat mengatasi hampir semua masalah ini. Cepat googling muncul [dua](http://www.downloadsquad.com/2006/11/16/swfupload-open-source-flash-multi-file-upload/) [seperti](http://www.codeproject.com/KB/aspnet/FlashUpload.aspx) komponen, keduanya gratis *dan* open source. Saya tidak pernah menggunakan salah satu dari mereka, tapi mereka terlihat baik. BTW, Flash isn't tanpa masalah yang baik, misalnya ketika menggunakan multi-file uploader untuk slide share, browser yang terus-menerus menerjang pada saya :-(


Mungkin solusi terbaik saat ini adalah untuk mendeteksi secara dinamis jika pengguna memiliki Flash, dan jika itu's kasus, memberikan versi flash uploader, sementara masih membuat itu mungkin untuk memilih HTML dasar satu.


HTH <ul> <li> <p> <a href="http://www.xfruits.com/">xfruits</a> <br> <img src="https://i.stack.imgur.com/jar4h.jpg" alt="screenshot of xfruits"></p> </li> <li> <p> <a href="http://www.feedjournal.com/reader.aspx">feedjournal</a> </p> <p><img src="https://www.online-tech-tips.com/wp-content/uploads/2008/02/1-thumb5.jpg" alt="screenshot of feedjournal"></p> </li> <li> <p> <a href="http://fivefilters.org/pdf-newspaper/">fivefilters pdf koran</a> </p> <p> <a href="https://i.stack.imgur.com/sw3je.jpg"><img src="https://i.stack.imgur.com/sw3je.jpg" alt="screenshot of fivefilters pdf newspaper"></a> <br> <sub>(sumber: <a href="http://www.webresourcesdepot.com/wp-content/uploads/image/rss-to-pdf.jpg">webresourcesdepot.com</a> )</sub></p> </li> <li> <p> <a href="http://www.mt-soft.com.ar/2007/12/21/rss-atom-to-pdf-conversion-google-gadget/">gadget google</a> </p> <p><img src="https://imgur.com/psti9.png" alt="screenshot of gadget"></p> </li> <li> <p> <a href="http://rss2pdf.org/">rss2pdf</a> </p> </li> <li> <p> <a href="http://www.rss2.co.uk/">rss2</a> dapat menghasilkan pdf dari beberapa umpan</p> </li> </ul> <p>tersandung pada ini, anehnya sulit ditemukan lagi nanti. menempatkan di sini untuk anak cucu:</p><pre><code>sudo yum install nodejs npm --enablerepo=epel </code></pre><p><strong>edit 3:</strong> pada juli 2016, <strong>edit 1</strong> tidak lagi berfungsi untuk nodejs 4 (dan <strong>edit 2</strong> keduanya). jawaban ini ( <a href="https://stackoverflow.com/a/35165401/78935">https://stackoverflow.com/a/35165401/78935</a> ) memberikan one-liner sejati.</p><p><strong>edit 1:</strong> jika anda mencari nodejs 4, silakan coba repo pengujian epel:</p><pre><code>sudo yum install nodejs --enablerepo=epel-testing </code></pre><p><strong>edit 2:</strong> untuk memutakhirkan dari nodejs 0.12 diinstal melalui repo epel menggunakan perintah di atas, ke nodejs 4 dari repo pengujian epel, silakan ikuti langkah-langkah ini:</p><pre><code>sudo yum rm nodejs sudo rm -f /usr/local/bin/node sudo yum install nodejs --enablerepo=epel-testing </code></pre><p>paket-paket yang lebih baru menempatkan binari simpul di <code>/usr/bin</code>, bukan <code>/usr/local/bin</code>.</p><p><em>dan latar belakang:</em></p><p>opsi <code>--enablerepo=epel</code> menyebabkan <code>yum</code> untuk mencari paket dalam repositori epel.</p><blockquote> <p>epel (paket ekstra untuk perusahaan linux) adalah proyek repositori berbasis komunitas dan open source dari tim fedora yang menyediakan 100% paket perangkat lunak tambahan berkualitas tinggi untuk distribusi linux termasuk rhel (red hat enterprise linux), centos, dan scientific linux. proyek epel bukan bagian dari rhel/cent os tetapi dirancang untuk distribusi linux utama dengan menyediakan banyak paket sumber terbuka seperti jaringan, sys admin, pemrograman, pemantauan dan sebagainya. sebagian besar paket epel dikelola oleh fedora repo.</p> <p><em>via <a href="http://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5/">http://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5/</a> </em></p> </blockquote> <p>pertimbangkan untuk membuat tabel baru dengan skema yang sama ditambah kolom versi baris, dan tambahkan tampilan di atas kedua tabel yang melakukan gabungan semua. mintalah orang lain menggunakan tampilan, dan menulis alih-alih pemicu terhadap tabel &amp; tampilan yang mendasarinya.</p><p>sisipan harus dikirim ke tabel baru, pembaruan harus memindahkan data ke tabel baru, dan penghapusan harus diterapkan ke kedua tabel.</p><p>kemudian lakukan gerakan batch di latar belakang, pindahkan sebanyak mungkin catatan sekaligus ke tabel yang baru. anda masih dapat memiliki masalah konkurensi saat ini sedang berlangsung, dan beberapa rencana eksekusi craptacular, tetapi ini memungkinkan anda tetap online saat gerakan sedang berlangsung.</p><p>idealnya, anda memulai proses pada hari jumat sore untuk meminimalkan efek pada pengguna akhir, dan mencoba menyelesaikannya sebelum senin pagi. setelah siap, anda dapat mengubah tampilan menjadi hanya tabel baru, dan rencana eksekusi craptacular hilang. idealnya.</p><p>untuk menghindari pemicu pemicu saat data dimigrasi dalam kumpulan, lihat jumlah baris dalam tabel yang dihapus/dimasukkan dalam pemicu, dan lewati aktivitas jika mendekati jumlah baris dalam kumpulan anda.</p><hr><p>pada akhirnya, michael memutuskan untuk melewatkan tampilan (dan tidak menghapus dari tabel asli) untuk mendapatkan rencana yang lebih stabil. trade off pada dasarnya memegang dua salinan tabel. dia mengubahnya menjadi <a href="http://michaeljswart.com/2012/04/modifying-tables-online-part-1-migration-strategy/">serangkaian posting blog</a> .</p> <p>tidak, redis lebih dari sekadar cache. </p><p>seperti cache, redis menyimpan kunci = pasangan nilai. tetapi tidak seperti cache, redis memungkinkan anda beroperasi pada nilai-nilai. ada 5 tipe data dalam redis - string, set, hash, daftar dan set diurutkan. setiap tipe data memperlihatkan berbagai operasi.</p><p>cara terbaik untuk memahami redis adalah dengan memodelkan suatu aplikasi tanpa memikirkan bagaimana anda akan menyimpannya dalam database. </p><p>katakanlah kita ingin membangun stackoverflow.com. untuk membuatnya sederhana, kita membutuhkan pertanyaan, jawaban, tag, dan pengguna.</p><h2>pertanyaan modeling, pengguna dan jawaban</h2><p>setiap objek dapat dimodelkan sebagai peta. misalnya, pertanyaan adalah peta dengan bidang {id, judul, date\_asked, suara, asked\_by, status}. demikian pula, sebuah jawaban adalah peta dengan bidang {id, question\_id, answer\_text, answer\_by, suara, status}. demikian pula, kita dapat memodelkan objek pengguna.</p><p>masing-masing benda ini dapat langsung disimpan di redis sebagai hash. untuk menghasilkan id unik, anda dapat menggunakan perintah kenaikan atom. sesuatu seperti ini - </p><pre><code>$ hincrby unique\_ids question 1 (integer) 1 $ hmset question:1 title "is redis just a cache?" asked\_by 12 votes 0 ok $ hincrby unique\_ids answer 1 (integer) 1 $ hmset answer:1 question\_id 1 answer\_text "no, its a lot more" answered\_by 15 votes 1 ok </code></pre><h2>menangani suara</h2><p>sekarang, setiap kali seseorang menjawab pertanyaan atau jawaban, anda hanya perlu melakukan ini </p><pre><code>$ hincrby question:1 votes 1 (integer) 1 $ hincrby question:1 votes 1 (integer) 2 </code></pre><h2>daftar pertanyaan untuk beranda</h2><p>selanjutnya, kami ingin menyimpan pertanyaan terbaru untuk ditampilkan di beranda. jika anda sedang menulis program .net atau java, anda akan menyimpan pertanyaan dalam daftar. ternyata, itu adalah cara terbaik untuk menyimpan ini di redis juga. </p><p>setiap kali seseorang mengajukan pertanyaan, kami menambahkan idnya ke daftar. </p><pre><code>$ lpush questions question:1 (integer) 1 $ lpush questions question:2 (integer) 1 </code></pre><p>sekarang, ketika anda ingin merender beranda, anda meminta redis untuk 25 pertanyaan terbaru. </p><pre><code>$ lrange questions 0 24 1) "question:100" 2) "question:99" 3) "question:98" 4) "question:97" 5) "question:96" ... 25) "question:76" </code></pre><p>sekarang setelah anda memiliki id, ambil item dari redis menggunakan pipelining dan menunjukkannya kepada pengguna.</p><h2>pertanyaan dengan tag, diurut berdasarkan pilihan</h2><p>selanjutnya, kami ingin mengambil pertanyaan untuk setiap tag. tetapi so memungkinkan anda untuk melihat pertanyaan pilihan teratas, pertanyaan baru atau pertanyaan yang tidak dijawab di bawah setiap tag.</p><p>untuk memodelkan ini, kami menggunakan fitur set diurutkan redis. set diurutkan memungkinkan anda untuk mengaitkan skor dengan setiap elemen. anda kemudian dapat mengambil elemen berdasarkan skor mereka. </p><p>ayo maju dan lakukan ini untuk tag redis </p><pre><code>$ zadd questions\_by\_votes\_tagged:redis 2 question:1 (integer) 1 $ zadd questions\_by\_votes\_tagged:redis 10 question:2 (integer) 1 $ zadd questions\_by\_votes\_tagged:redis 5 question:613 (integer) 1 $ zrange questions\_by\_votes\_tagged:redis 0 5 1) "question:1" 2) "question:613" 3) "question:2" $ zrevrange questions\_by\_votes\_tagged:redis 0 5 1) "question:2" 2) "question:613" 3) "question:1" </code></pre><p>apa yang kita lakukan di sini? kami menambahkan pertanyaan ke set yang diurutkan, dan mengaitkan skor (jumlah suara) untuk setiap pertanyaan. setiap kali sebuah pertanyaan dibatalkan, kami akan menambah nilainya. dan ketika pengguna mengklik &quot;pertanyaan yang ditandai redis, disortir berdasarkan suara&quot;, kami hanya melakukan <code>zrevrange</code> dan mendapatkan kembali pertanyaan teratas.</p><h2>pertanyaan waktu nyata tanpa halaman yang menyegarkan</h2><p>dan akhirnya, fitur bonus. jika anda membiarkan halaman pertanyaan terbuka, so akan memberi tahu anda ketika pertanyaan baru ditambahkan. bagaimana redis bisa membantu di sini?</p><p>redis memiliki model pub-sub. anda dapat membuat saluran, misalnya &quot;channel\_questions\_tagged\_redis&quot;. anda kemudian <code>subscribe</code> pengguna ke saluran tertentu. ketika pertanyaan baru ditambahkan, anda akan <code>publish</code> pesan ke saluran itu. semua pengguna akan mendapatkan pesan. anda harus menggunakan teknologi web seperti soket atau komet web untuk benar-benar mengirimkan pesan ke browser, tetapi redis membantu anda dengan semua pipa ledeng di sisi server.</p><h2>kegigihan, keandalan, dll.</h2><p>tidak seperti cache, redis tetap menyimpan data pada hard disk. anda dapat memiliki pengaturan master-slave untuk memberikan keandalan yang lebih baik. untuk mempelajari lebih lanjut, buka topik kegigihan dan replikasi di sini - <a href="http://redis.io/documentation">http://redis.io/documentation</a> </p> untuk unduh lagu viral video ruel real thing silahkan klik tombol download dari link yang telah disediakan oleh admin. silahkan dibookmark situs kami line musik <p>saya tidak yakin di sini, tapi saya akan mengambil risiko. saya pikir masalah anda mungkin dengan catatan <code>deny control</code> anda. lihat <a href="http://msdn.microsoft.com/en-us/library/ms188338.aspx">di sini</a> sekitar setengah halaman:</p><p><strong> menolak izin kontrol pada database secara implisit menolak izin connect pada database. prinsipal yang ditolak izin kontrol pada database tidak akan dapat terhubung ke database itu. </strong></p><p>saya menyadari bahwa contoh adalah untuk basis data, tetapi gunakan satu tingkat lagi. a <code>deny control</code> di atas tabel akan menolak <em> semua</em> hak istimewa di atasnya, saya menduga. lakukan <code>revoke control</code> untuk menyingkirkannya dan lihat apakah itu memperbaiki masalah anda.</p><p>jika demikian, anda harus menempatkan pengguna dalam peran basis data atau menolak mereka hak istimewa eksplisit terhadap tabel.</p> <p>docker awalnya menggunakan <a href="http://lxc.sourceforge.net/">linux containers</a> (lxc), tetapi kemudian beralih ke <a href="https://github.com/opencontainers/runc">runc</a> (sebelumnya dikenal sebagai<strong> libcontainer </strong>), yang berjalan dalam sistem operasi yang sama dengan host-nya. ini memungkinkannya untuk berbagi banyak sumber daya sistem operasi host. juga, ia menggunakan sistem file berlapis ( <a href="http://aufs.sourceforge.net/">aufs</a> ) dan mengelola jaringan.</p><p>aufs adalah sistem file berlapis, sehingga anda dapat memiliki bagian hanya baca dan bagian tulis yang digabungkan. seseorang dapat memiliki bagian umum dari sistem operasi sebagai hanya baca (dan dibagi di antara semua wadah anda) dan kemudian memberikan masing-masing wadah mount sendiri untuk ditulis.</p><p>jadi, katakanlah anda memiliki gambar kontainer 1 gb; jika anda ingin menggunakan vm penuh, anda harus memiliki 1 gb x jumlah vm yang anda inginkan. dengan docker dan aufs anda dapat berbagi sebagian besar 1 gb di antara semua wadah dan jika anda memiliki 1000 kontainer anda masih mungkin hanya memiliki sedikit lebih dari 1 gb ruang untuk wadah os (dengan asumsi mereka semua menjalankan gambar os yang sama) .</p><p>sistem tervirtualisasi lengkap mendapatkan set sumber daya sendiri yang dialokasikan untuk itu, dan melakukan pembagian minimal. anda mendapatkan lebih banyak isolasi, tetapi jauh lebih berat (membutuhkan lebih banyak sumber daya). dengan docker anda mendapatkan lebih sedikit isolasi, tetapi wadahnya ringan (membutuhkan lebih sedikit sumber daya). jadi anda dapat dengan mudah menjalankan ribuan kontainer pada host, dan itu bahkan tidak akan berkedip. coba lakukan itu dengan xen, dan kecuali anda memiliki host yang sangat besar, saya rasa itu tidak mungkin.</p><p>sistem virtualisasi penuh biasanya membutuhkan waktu beberapa menit untuk memulai, sedangkan wadah docker/lxc/runc membutuhkan waktu beberapa detik, dan seringkali bahkan kurang dari satu detik.</p><p>ada pro dan kontra untuk setiap jenis sistem tervirtualisasi. jika anda ingin isolasi penuh dengan sumber daya yang dijamin, \_ vm yang lengkap adalah cara untuk melakukannya. jika anda hanya ingin mengisolasi proses dari satu sama lain dan ingin menjalankan satu ton dari mereka pada host berukuran cukup, maka docker/lxc/runc tampaknya menjadi cara untuk pergi.</p><p>untuk informasi lebih lanjut, lihat <a href="http://web.archive.org/web/20150326185901/http://blog.dotcloud.com/under-the-hood-linux-kernels-on-dotcloud-part">set posting blog ini</a> yang melakukan pekerjaan dengan baik untuk menjelaskan cara kerja lxc.</p><blockquote> <p>mengapa menyebarkan perangkat lunak ke gambar buruh pelabuhan (jika itu istilah yang tepat) lebih mudah daripada hanya menggunakan lingkungan produksi yang konsisten?</p> </blockquote><p>menyebarkan lingkungan produksi yang konsisten lebih mudah diucapkan daripada dilakukan. bahkan jika anda menggunakan alat seperti <a href="https://en.wikipedia.org/wiki/chef\_%28software%29">chef</a> dan <a href="https://en.wikipedia.org/wiki/puppet\_%28software%29">wayang</a> , selalu ada pembaruan os dan hal-hal lain yang berubah antara host dan lingkungan.</p><p>docker memberi anda kemampuan untuk memotret os menjadi gambar yang dibagikan, dan membuatnya mudah untuk digunakan pada host docker lainnya. secara lokal, dev, qa, prod, dll .: semua gambar yang sama. tentu anda bisa melakukan ini dengan alat lain, tetapi tidak semudah atau cepat.</p><p>ini bagus untuk pengujian; katakanlah anda memiliki ribuan tes yang perlu terhubung ke database, dan setiap tes membutuhkan salinan asli dari database dan akan membuat perubahan pada data. pendekatan klasik untuk ini adalah mereset basis data setelah setiap pengujian baik dengan kode khusus atau dengan alat seperti <a href="https://flywaydb.org/">flyway</a> - ini bisa sangat memakan waktu dan berarti tes harus dijalankan secara seri. namun, dengan docker anda bisa membuat gambar dari database anda dan menjalankan satu contoh per tes, dan kemudian menjalankan semua tes secara paralel karena anda tahu mereka semua akan berjalan melawan snapshot yang sama dari database. karena tes berjalan secara paralel dan dalam wadah docker, mereka dapat menjalankan semua pada kotak yang sama pada waktu yang sama dan harus menyelesaikan lebih cepat. coba lakukan itu dengan vm penuh.</p><p>dari komentar ...</p><blockquote> <p>menarik! saya kira saya masih bingung dengan gagasan &quot;snapshot [ting] os&quot;. bagaimana seseorang melakukannya tanpa, membuat gambar os?</p> </blockquote><p>baiklah, mari kita lihat apakah saya bisa menjelaskan. anda mulai dengan gambar dasar, dan kemudian membuat perubahan anda, dan melakukan perubahan itu menggunakan buruh pelabuhan, dan itu membuat gambar. gambar ini hanya berisi perbedaan dari pangkalan. ketika anda ingin menjalankan gambar anda, anda juga membutuhkan basis, dan lapisan gambar anda di atas basis menggunakan sistem file berlapis: seperti yang disebutkan di atas, docker menggunakan aufs. aufs menggabungkan lapisan yang berbeda bersama-sama dan anda mendapatkan apa yang anda inginkan; anda hanya perlu menjalankannya. anda dapat terus menambahkan lebih banyak gambar (lapisan) dan itu akan terus menyimpan hanya diff. karena docker biasanya membangun di atas gambar yang sudah jadi dari <a href="https://registry.hub.docker.com/">registry</a> , anda jarang harus &quot;memotret&quot; sendiri seluruh os.</p>