﻿1
00:00:02,530 --> 00:00:10,610
‫Dalam kuliah ini, kita akan berbicara tentang bind mounting dan data persisten di mount tersebut. Persyaratannya adalah Anda hanya tahu

2
00:00:10,610 --> 00:00:15,300
‫tentang manajemen wadah dan cara menjalankan wadah.

3
00:00:15,320 --> 00:00:20,230
‫Mari kita melompat. Mari kita bicara tentang bind mounts. Mereka sebenarnya sangat keren.

4
00:00:20,240 --> 00:00:25,550
‫Ketika saya pertama kali belajar tentang mereka, itu semacam memberi saya aha tentang bagaimana saya bisa menggunakan Docker dengan mudah untuk

5
00:00:25,550 --> 00:00:26,180
‫pengembangan lokal.

6
00:00:26,180 --> 00:00:33,380
‫Sebenarnya, bind mount hanyalah pemetaan dari file host, atau direktori, ke dalam file atau direktori

7
00:00:33,380 --> 00:00:35,330
‫kontainer. Anda bisa melakukannya.

8
00:00:35,330 --> 00:00:39,040
‫Anda dapat menentukan direktori atau hanya satu file. Di latar belakang, pada

9
00:00:39,050 --> 00:00:43,780
‫dasarnya hanya memiliki dua lokasi menunjuk ke lokasi fisik yang sama pada disk.

10
00:00:43,910 --> 00:00:49,730
‫Sekali lagi, ini benar-benar melewatkan UFS seperti volume lainnya lakukan sehingga itu tidak akan menghapus

11
00:00:49,730 --> 00:00:52,620
‫lokasi host Anda ketika Anda menghapus wadah.

12
00:00:52,640 --> 00:00:58,550
‫Jika ada file dalam wadah tempat Anda memetakan file host, file host akan menang. Sebenarnya tidak menghapus file dalam wadah

13
00:00:58,550 --> 00:01:03,650
‫yang ditimpa karena itu tidak benar-benar menimpa apa pun dalam

14
00:01:03,680 --> 00:01:04,770
‫wadah.

15
00:01:04,910 --> 00:01:07,100
‫Itu hanya ada sementara bind mount ada.

16
00:01:07,100 --> 00:01:11,570
‫Begitu Anda tidak memerlukan bind mount lagi dan Anda menjalankan kembali wadah tanpanya, Anda benar-benar

17
00:01:11,570 --> 00:01:17,650
‫akan melihat data dasar yang ada di sana sebelumnya. Karena bind mounts biasanya khusus untuk host, mereka

18
00:01:17,660 --> 00:01:21,870
‫membutuhkan data khusus untuk berada di hard drive host agar dapat bekerja.

19
00:01:21,890 --> 00:01:23,500
‫Anda tidak dapat menentukannya di Dockerfile.

20
00:01:23,510 --> 00:01:28,490
‫Anda harus menggunakannya saat runtime ketika Anda menggunakan perintah run docker container. Anda dapat melihat formatnya di

21
00:01:28,490 --> 00:01:29,080
‫sini.

22
00:01:29,090 --> 00:01:33,980
‫Ini benar-benar -v yang kita gunakan sebelumnya, hanya di sisi kiri titik

23
00:01:34,100 --> 00:01:38,360
‫dua, kita sebenarnya menempatkan di jalur penuh daripada hanya nama.

24
00:01:38,360 --> 00:01:42,260
‫Dan cara Docker benar-benar mengetahui perbedaan antara volume yang dinamai, seperti yang kami

25
00:01:42,410 --> 00:01:46,490
‫lakukan beberapa waktu lalu, dan bind mount, adalah bind mount yang dimulai dengan garis miring.

26
00:01:46,490 --> 00:01:51,470
‫Pada Windows, Anda akan melihat bahwa ini adalah dua garis miring ke depan dan kemudian huruf drive, dan kemudian

27
00:01:51,470 --> 00:01:52,120
‫jalur Anda.

28
00:01:52,130 --> 00:01:57,620
‫Selama Anda memiliki titik dua dan sisi kanan, Anda benar-benar dapat memetakan apa pun yang Anda inginkan

29
00:01:57,620 --> 00:02:01,860
‫dari host ke dalam wadah, dan Anda juga dapat menentukan hal-hal seperti read-only.

30
00:02:01,880 --> 00:02:07,910
‫Di mana ini benar-benar datang untuk bersinar adalah dengan pengembangan dan menjalankan layanan di dalam wadah

31
00:02:07,910 --> 00:02:12,940
‫Anda yang mengakses file yang Anda gunakan pada host Anda atau berubah.

32
00:02:12,950 --> 00:02:14,720
‫Mari kita lakukan dengan Nginx.

33
00:02:14,930 --> 00:02:22,370
‫Jika Anda pergi ke root dari repositori kami untuk kursus ini, dan kemudian kita masuk ke direktori contoh

34
00:02:22,370 --> 00:02:24,750
‫2 Dockerfile. Sekarang kami berada di sini sebelumnya.

35
00:02:24,770 --> 00:02:28,580
‫Jika Anda ingat, ada dua file. Ini untuk Nginx, kan?

36
00:02:28,580 --> 00:02:36,530
‫Jika kita melihat Dockerfile sangat cepat, itu sangat sederhana. Itu hanya menentukan direktori kerja dan kemudian menyalin

37
00:02:36,560 --> 00:02:39,050
‫file indeks ke direktori itu.

38
00:02:39,050 --> 00:02:40,490
‫Tidak ada volume di sini.

39
00:02:40,490 --> 00:02:45,290
‫Bind mount tidak memerlukan volume untuk bekerja, meskipun orang pasti bisa berada di sana.

40
00:02:45,530 --> 00:02:52,590
‫Tuan rumah selalu menang, ingat? Jadi, ketika kita melakukan menjalankan kontainer buruh pelabuhan, maka

41
00:02:52,630 --> 00:02:56,330
‫kita melakukan -d ... beri nama nginx.

42
00:02:56,390 --> 00:03:00,420
‫Mari berikan port 8080 seperti sebelumnya.

43
00:03:00,770 --> 00:03:06,470
‫Maka kita akan memberikan volume kali ini. Dan saya perlu mengatakannya bahwa direktori kerja saya saat ini

44
00:03:06,650 --> 00:03:12,230
‫akan benar-benar dipasang ke direktori kerja dalam wadah. Karena file indeks saya ada di sini di

45
00:03:12,230 --> 00:03:13,390
‫folder ini, saya

46
00:03:13,430 --> 00:03:19,040
‫ingin berada di wadah sehingga saya dapat mengeditnya di sini, dan itu terlihat langsung di wadah.

47
00:03:19,040 --> 00:03:20,320
‫Jadi akan masuk akal dalam sedetik.

48
00:03:20,540 --> 00:03:24,280
‫Ini sedikit tip cepat. Daripada saya harus mencari tahu

49
00:03:24,290 --> 00:03:28,370
‫seluruh jalur saya dan mengetik semuanya, Anda dapat menggunakan pwd di sini seperti itu.

50
00:03:28,460 --> 00:03:36,210
‫Yang merupakan jalan pintas shell yang mengatakan, 'cetak direktori yang berfungsi dan ganti perintah ini dengan jalur itu.

51
00:03:36,380 --> 00:03:43,460
‫'Lalu kita hanya akan menggunakan direktori kerja yang sama dari Dockerfile di sana, dan kemudian kita

52
00:03:43,460 --> 00:03:45,360
‫akan menentukan gambar Nginx.

53
00:03:47,590 --> 00:03:52,930
‫Apa yang akan saya lakukan, sangat cepat, adalah saya sebenarnya akan membuka jendela terminal lain sehingga kita dapat

54
00:03:52,930 --> 00:03:54,480
‫melakukan dua hal sekaligus.

55
00:03:54,590 --> 00:03:56,010
‫Anda tidak perlu melakukan ini.

56
00:03:56,050 --> 00:04:01,840
‫Pada dasarnya, kami hanya akan mengedit file pada host kami, dan kemudian saya akan berada di wadah dan melihat

57
00:04:01,840 --> 00:04:02,780
‫apa yang terjadi.

58
00:04:02,920 --> 00:04:04,730
‫Jadi hanya untuk memastikan itu berfungsi,

59
00:04:04,780 --> 00:04:06,350
‫mari kita pergi ke localhost.

60
00:04:06,700 --> 00:04:10,000
‫OK, jadi ini bukan file HTML Nginx default.

61
00:04:10,030 --> 00:04:13,080
‫Dan kami menggunakan gambar Nginx biasa.

62
00:04:13,090 --> 00:04:16,580
‫Kami sebenarnya tidak menggunakan yang khusus dari direktori ini.

63
00:04:16,690 --> 00:04:24,270
‫Kami hanya menggunakan gambar stok. Untuk membuktikan hal itu, kita sebenarnya dapat melakukan hal

64
00:04:24,280 --> 00:04:37,390
‫yang sama, perintah yang tepat lagi tetapi menghapus -v, dan saya akan menjalankannya di port 8080 sebagai gantinya. Dan saya akan menyebutnya nginx2.

65
00:04:37,420 --> 00:04:47,930
‫Jika saya pergi ke browser saya dan pergi ke localhost 8080, itu adalah indeks nginx default. file html.

66
00:04:48,010 --> 00:04:52,130
‫Yang ini adalah kebiasaan yang kita miliki di direktori ini.

67
00:04:52,780 --> 00:04:56,380
‫Jadi, sudah bisa kita lihat bahwa itu memetakannya dengan benar.

68
00:04:56,560 --> 00:05:03,010
‫Jika saya membuka tab lain di sini dan mendapatkan baris perintah di wadah.

69
00:05:08,800 --> 00:05:10,130
‫Lalu pergi ke direktori itu.

70
00:05:17,710 --> 00:05:21,580
‫Anda akan melihat bahwa kita sebenarnya dapat melihat Dockerfile karena kami memetakan seluruh direktori.

71
00:05:21,620 --> 00:05:27,460
‫Jika di sebelah kiri, jika kita benar-benar membuat file baru dan saya bisa menggunakan perintah sentuh Linux di sini

72
00:05:30,440 --> 00:05:37,010
‫untuk membuat file baru. Kemudian di sebelah kanan ... Ups ... teruslah lupa bahwa ... ls -al, dan Anda akan melihatnya

73
00:05:37,010 --> 00:05:37,900
‫di file Anda.

74
00:05:37,970 --> 00:05:43,350
‫Semoga Anda mengerti apa yang terjadi di sini, bahwa kedua lokasi ini adalah lokasi yang sama.

75
00:05:43,370 --> 00:05:47,350
‫Dan jika saya menggemakan sesuatu ke file testme itu, dan

76
00:05:57,430 --> 00:05:58,420
‫kemudian ...

77
00:06:01,620 --> 00:06:02,410
‫ini dia.

78
00:06:02,410 --> 00:06:06,670
‫Nginx kami dapat melihat perubahan karena itu hanya jalur file normal di wadah,

79
00:06:06,670 --> 00:06:08,720
‫dan file-file itu ada di host.

80
00:06:08,830 --> 00:06:12,670
‫Jika saya menghapusnya dalam wadah, mereka akan dihapus pada host karena itu adalah file yang

81
00:06:12,670 --> 00:06:13,210
‫sama.

82
00:06:13,210 --> 00:06:19,090
‫Ini adalah saat saya biasanya membuat pengembang berpikir tentang semua lingkungan pengembangan yang mereka

83
00:06:19,090 --> 00:06:24,670
‫miliki yang merupakan pengaturan rumit ini. Mungkin mereka menggunakan Vagrant, atau metode manual lainnya

84
00:06:24,670 --> 00:06:30,880
‫untuk mengatur lingkungan mereka yang sempurna, dan mereka dapat mulai melihat bagaimana ini bisa membuat itu menjadi jauh lebih sederhana.

85
00:06:31,330 --> 00:06:35,920
‫Karena saya tidak perlu melakukan pengaturan rumit pada Mac saya, saya hanya menjalankan sebuah wadah.

86
00:06:35,920 --> 00:06:43,670
‫Saya menggunakan perintah -v dengan mount, dan sekarang kode saya, pada host saya, dapat diedit pada host saya.

87
00:06:43,840 --> 00:06:47,890
‫Dan saya benar-benar tidak perlu masuk ke cangkang wadah.

88
00:06:47,890 --> 00:06:52,570
‫Biasanya, Anda bisa menjalankan wadah dan melihat log-nya untuk melihat apakah ada kesalahan saat

89
00:06:52,570 --> 00:06:53,260
‫Anda coding.

90
00:06:53,500 --> 00:06:58,750
‫Tentu saja, ini adalah contoh sederhana dengan Nginx. Kemudian, kita benar-benar akan memiliki contoh

91
00:06:58,750 --> 00:07:03,160
‫spesifik dari lingkungan pengembangan yang berbeda untuk pengembangan lokal dan wadah.

