‫Oke, jadi yang akan saya lakukan adalah, saya akan berjalan melalui masing-masing layanan ini berdasarkan arsitektur ini,
‫dan saya akan membuat aplikasi ini dengan cepat. Saya benar-benar akan mengetikkan perintah di sini di readme, karena itu
‫sepertinya tempat yang logis bagi saya untuk melakukannya. Dan kemudian saya akan memotong dan menempelkannya ke
‫simpul saya.
‫Jika Anda ingat, saya memiliki Swarm 3-node di sini. Jika saya membuat simpul buruh pelabuhan, Anda
‫akan melihat bahwa saya memiliki tiga simpul di sini. Itu semua adalah node manajer.
‫Saya tidak punya wadah berjalan, dan tidak ada layanan, jelas. Hal pertama, saya tahu di bagian
‫atas, ini berbicara tentang saya perlu jaringan, dan saya butuh volume.
‫Jadi, mungkin bisa mendapatkan jaringan keluar dari jalan dan saya mungkin bisa mengatasinya. Saya dapat mengetik
‫jaringan buruh pelabuhan membuat d overlay. Ingatlah bahwa jaringan overlay adalah satu-satunya jenis jaringan yang dapat
‫kita gunakan dalam Swarm karena overlay memungkinkan kita untuk menjangkau seluruh node, seolah-olah semuanya berada di jaringan lokal.
‫Dan kemudian saya ingin menyebutnya backend.
‫Dan kemudian, saya ingin melakukan hal yang persis sama, hanya menyebutnya frontend.
‫Sekarang, tidak ada yang secara khusus istimewa dari kedua jaringan ini.
‫Kami hanya akan membagi layanan kami yang berbeda menjadi satu atau yang lain untuk membantu bertindak seperti
‫firewall kecil yang memberikan pemisahan untuk perlindungan.
‫Pada pemungutan suara
‫ini, saya tahu saya perlu membuat layanan buruh pelabuhan, dan saya harus menyebutkannya, jadi saya mungkin juga memberikan suara pada nama. Dan kemudian saya harus menerbitkan port 80 hingga 80 dalam wadah,
‫dan itu harus berada di jaringan tertentu. Jadi, frontend jaringan.
‫Saya perlu dua replika.
‫Jadi, tiru dua. Dan kemudian, saya mungkin juga menyalin dan menempelkan nama ini.
‫Sekarang, saya akan melanjutkan dan membuat semua ini sebelum saya benar-benar menyebarkannya.
‫Saya akan benar-benar menyalin yang ini di sini. Yang ini akan disebut ... itu tidak akan disebut suara,
‫itu akan disebut redis.
‫Anda tidak perlu khawatir tentang menerbitkan port apa pun tentang itu.
‫Itu akan berada di jaringan frontend.
‫Saya ingin dua replika, dan kemudian, saya akan menyebutnya redis tiga adalah gambar.
‫Di sini, layanan buruh pelabuhan membuat nama pekerja, akan berada di dua jaringan. Saya harus melakukan frontend jaringan
‫dan ... wah
‫Saya sedang mengetik apa yang saya katakan ... mari kita lihat, backend jaringan, dan kemudian hanya satu replika.
‫... Karena satu replika adalah default,
‫saya sebenarnya tidak harus menentukan replika dan saya tidak menentukan port apa pun.
‫Saya pikir, hanya itu yang saya butuhkan di sana. Saya hanya perlu menyalin gambar.
‫Oke, layanan buruh pelabuhan membuat backend jaringan nama db.
‫Lihat, satu replika.
‫Oh, saya perlu melakukan volume ini.
‫Inilah hal tentang volume. Perintah -v tidak kompatibel dengan layanan buruh pelabuhan. Karena, karena berbagai alasan, layanan akan
‫menjadi lebih kompleks daripada yang mungkin dijalankan oleh buruh pelabuhan Anda.
‫Dan ada masalah dan keterbatasan dengan -v kembali pada hari itu.
‫Jadi, Docker telah belajar dari itu dan memperbaiki formatnya. Tapi kebetulan sedikit lebih bertele-tele
‫dan mungkin sedikit lebih sulit untuk mengingat format memulai.
‫Itu juga belum terdokumentasi dengan baik dalam Dokumentasi Docker karena itu kurang dari
‫satu tahun sebagai perintah. Jadi, kita hanya akan menyalin dan menempel ini. Jika tidak masuk akal
‫bagi Anda, pada dasarnya, ini daftar nilai-nilai yang semuanya merupakan bagian dari perintah mount tunggal dan
‫minimum adalah tipe, sumber, dan target.
‫Ada juga hal-hal lain yang dapat Anda tambahkan, tetapi ini adalah hanya tiga yang kita butuhkan dalam skenario ini.
‫Dan Anda dapat melihat sumber saya hanya volume bernama karena saya tidak memiliki garis miring di dalamnya.
‫Dan jika kita memiliki tebasan, itu akan menjadi bind mount dan kita harus menentukan tipe yang
‫berbeda.
‫Jadi di sini, --mount jenis volume, sumber data db, target.
‫Saya pikir itu benar.
‫Dan kemudian Anda bisa, postgres 9. 4.
‫Dan yang terakhir adalah aplikasi hasil.
‫Jadi, layanan buruh pelabuhan membuat backend jaringan hasil nama.
‫Publikasikan port. Kami akan menggunakan 5001 ke port 80 dalam wadah.
‫Saya hanya bisa menjalankan salah satunya. Ngomong-ngomong, satu-satunya alasan kita menjalankan salah satunya sebenarnya
‫adalah masalah yang sedikit diketahui pada aplikasi ini, adalah bahwa ini sebenarnya menggunakan WebSockets, dan WebSockets adalah sesuatu yang
‫membutuhkan koneksi persisten.
‫Jadi, di jala perutean, WebSockets tidak benar-benar berfungsi dengan baik karena itu akan membuat
‫Anda terus bolak-balik di antara kontainer dan bahwa WebSocket perlu ke wadah tertentu secara terus-menerus.
‫Jadi, dengan aplikasi ini yang seharusnya kita miliki, adalah proxy di depannya tetapi belum ada dalam aplikasi ini, jadi mungkin dalam versi yang lebih
‫baru mereka akan memperbaruinya dan memperbaikinya sehingga kita memiliki proxy.
‫Dengan cara itu bisa menjadi berlebihan
‫dan yakin Anda mendapatkan wadah yang tepat. Kami akan
‫menyalin dan menempel ini sampai akhir. Saya baru sadar saya kehilangan nilai terakhir pada ini.
‫Oke, lalu saya akan mulai dari atas dan cukup salin dan tempel. Itu sudah membuat jaringan.
‫Ya, ini perlu replika. Biarkan saya memperbarui itu di sini.
‫Replika. Oke, kita akan membuat redis. Itu dia.
‫Baiklah, buat itu. Sekarang, Anda akan melihat, omong-omong, saya mendapatkan kembali ID layanan tetapi itu tidak
‫berarti bahwa layanan tersebut benar-benar digunakan dengan benar.
‫Kami akan melihatnya sebentar lagi.
‫Biarkan saya memasukkan sisanya ke sana.
‫Baiklah.
‫Sekarang kita memiliki itu, kita harus dapat melakukan sisa perintah kita di sini. Jadi, layanan buruh pelabuhan menunjukkan kepada kami
‫mereka berlima. Dan Anda akan melihat bahwa nomor replika cocok.
‫Itu pertanda baik.
‫Itu berarti bahwa seseorang telah berhasil dibuat.
‫Dan jika saya ingin menggali lebih dalam, saya bisa melakukan layanan buruh pelabuhan ps pada masing-masing.
‫Baiklah, jadi yang sudah berjalan 28 detik.
‫redis telah berjalan sebentar. db berjalan 53 detik. memilih.
‫pekerja.
‫Dan Anda akan melihat di sini di pekerja, bahwa kami memiliki tugas gagal yang ditutup, dan kemudian yang berjalan.
‫Itu sudah berjalan selama 47 detik.
‫Oke, jadi, saya benar-benar tahu mengapa ini terjadi, tetapi Anda mungkin tidak tahu, jadi mungkin kita harus membuat log.
‫Sekarang ini di node2.
‫Fitur eksperimental yang dapat Anda aktifkan melalui konfigurasi opsional di Docker, sebenarnya adalah untuk
‫melakukan fitur eksperimental baru, log layanan docker. Yang sebenarnya menarik log dari banyak node yang berbeda.
‫Mudah-mudahan, ini akan dirilis di versi Docker berikutnya akhir tahun ini.
‫Tapi untuk sekarang, ini masih eksperimental. Jadi saya harus mengaktifkannya di dalam daemon docker dock dll, atau daemon.
‫file json. Dan, supaya Anda tahu, beginilah cara Anda mengaktifkan eksperimen.
‫Itu bukan bagian dari ini.
‫Itu hanya sesuatu yang saya lakukan, hanya supaya saya bisa menunjukkan ini dengan sangat cepat.
‫Anda mungkin melihat kesalahan ini dan Anda berpikir, saya tidak tahu mengapa itu terjadi?
‫Kita dapat melihat log itu. Jadi, kita bisa melakukan pekerja log layanan buruh pelabuhan ... Ups ... pekerja kayu.
‫Dan ini aktif, khusus ini, mari kita lihat, ini adalah dua yang berbeda ...
‫Anda bisa lihat di sini ini satu, dan kemudian angkanya berubah. Sebenarnya ya.
‫Ini semua ada di sini.
‫Dikatakan tidak ada perangkat atau alamat tersebut.
‫Jadi, apa artinya ini pada dasarnya, saya membuat layanan yang mencari catatan DNS yang belum ada
‫karena saya belum membuat layanan lain. Dan itu melakukan hal yang seharusnya
‫dilakukan di "Dockerland", yaitu ketika memiliki kesalahan seperti itu, aplikasi harus macet karena Docker benar-benar dapat memulai kembali dan
‫memindahkan kembali barang-barang dengan benar sampai aplikasi tidak crash. Dan segera setelah saya mendapatkan semua
‫layanan saya diluncurkan, semuanya berhenti mogok dan semuanya sekarang berfungsi.
‫Dan kita dapat mengatakan itu hanya dengan kembali dan melihat pekerja ps. Kami melihat bahwa itu telah berjalan dengan
‫sukses selama tiga menit.
‫Jadi mari kita lihat aplikasi kita.
‫Jika saya hanya mengambil alamat IP, saya harus mendapatkan anjing dan kucing. Saya akan memilih kucing.
‫Dan kemudian jika saya pergi ke IP yang sama pada port 5001, saya akan melihat aplikasi hasil. Itu aplikasinya.
‫Kita sekarang tahu bahwa itu berfungsi karena satu-satunya cara hal ini dapat berubah adalah jika ini
‫terus berlanjut ketika tertangkap oleh redis, dan kemudian diproses oleh pekerja, dan kemudian dimasukkan ke dalam database.
‫Jadi kita tahu bahwa masing-masing layanan aplikasi kami dapat saling berbicara. Dan kita dapat melihat log jika kita
‫mau.
‫Tapi, itu demo.