﻿1
00:00:02,530 --> 00:00:10,610
‫Trong bài giảng này, chúng ta sẽ nói về việc gắn kết liên kết và dữ liệu liên tục trong các liên kết đó. Yêu cầu thực sự là bạn chỉ biết

2
00:00:10,610 --> 00:00:15,300
‫về quản lý vùng chứa và cách chạy các vùng chứa.

3
00:00:15,320 --> 00:00:20,230
‫Hãy nhảy vào. Hãy nói về gắn kết ràng buộc. Chúng thực sự khá tuyệt.

4
00:00:20,240 --> 00:00:25,550
‫Khi tôi lần đầu tiên biết về chúng, điều đó đã cho tôi biết một phần về cách tôi có thể sử dụng Docker một cách dễ dàng để phát

5
00:00:25,550 --> 00:00:26,180
‫triển cục bộ.

6
00:00:26,180 --> 00:00:33,380
‫Thực sự, mount liên kết chỉ là một ánh xạ của các tệp máy chủ hoặc thư mục vào một tệp hoặc thư

7
00:00:33,380 --> 00:00:35,330
‫mục vùng chứa. Bạn có thể làm điều đó.

8
00:00:35,330 --> 00:00:39,040
‫Bạn có thể chỉ định một thư mục hoặc chỉ một tệp. Về cơ bản, nó chỉ

9
00:00:39,050 --> 00:00:43,780
‫có hai vị trí trỏ đến cùng một vị trí vật lý trên đĩa.

10
00:00:43,910 --> 00:00:49,730
‫Một lần nữa, điều này thực sự bỏ qua UFS giống như các ổ đĩa khác để nó không xóa sạch vị

11
00:00:49,730 --> 00:00:52,620
‫trí máy chủ của bạn khi bạn xóa vùng chứa.

12
00:00:52,640 --> 00:00:58,550
‫Nếu có bất kỳ tệp nào trong vùng chứa mà bạn ánh xạ các tệp máy chủ lưu trữ tới thì tệp máy chủ lưu trữ sẽ giành chiến thắng. Nó không thực sự xóa các tệp trong vùng

13
00:00:58,550 --> 00:01:03,650
‫chứa mà nó đã ghi đè vì nó không thực sự ghi đè bất kỳ thứ gì

14
00:01:03,680 --> 00:01:04,770
‫trong vùng chứa.

15
00:01:04,910 --> 00:01:07,100
‫Nó chỉ ở đó trong khi gắn kết ràng buộc tồn tại.

16
00:01:07,100 --> 00:01:11,570
‫Khi bạn không cần gắn kết liên kết nữa và bạn chạy lại vùng chứa mà không có nó, bạn

17
00:01:11,570 --> 00:01:17,650
‫sẽ thực sự thấy dữ liệu cơ bản đã có trước đó. Bởi vì các liên kết gắn kết thường dành riêng cho máy

18
00:01:17,660 --> 00:01:21,870
‫chủ lưu trữ, chúng cần dữ liệu cụ thể trên ổ cứng của máy chủ đó để hoạt động.

19
00:01:21,890 --> 00:01:23,500
‫Bạn không thể chỉ định chúng trong Dockerfile.

20
00:01:23,510 --> 00:01:28,490
‫Bạn phải sử dụng chúng trong thời gian chạy khi bạn sử dụng lệnh chạy bộ chứa docker. Bạn có thể xem định dạng ở

21
00:01:28,490 --> 00:01:29,080
‫đây.

22
00:01:29,090 --> 00:01:33,980
‫Nó thực sự là -v mà chúng ta đã sử dụng trước đây, chỉ ở phía bên trái của dấu hai chấm,

23
00:01:34,100 --> 00:01:38,360
‫chúng ta thực sự đang đặt một đường dẫn đầy đủ chứ không chỉ là một cái tên.

24
00:01:38,360 --> 00:01:42,260
‫Và cách Docker thực sự có thể phân biệt sự khác biệt giữa tập đã đặt tên, giống như chúng

25
00:01:42,410 --> 00:01:46,490
‫ta đã làm trước đây và mount mount, là bind mount bắt đầu bằng một dấu gạch chéo về phía trước.

26
00:01:46,490 --> 00:01:51,470
‫Trên Windows, bạn sẽ nhận thấy rằng đó là hai dấu gạch chéo về phía trước, sau đó là ký tự ổ đĩa, sau đó là đường

27
00:01:51,470 --> 00:01:52,120
‫dẫn của bạn.

28
00:01:52,130 --> 00:01:57,620
‫Miễn là bạn có dấu hai chấm bên trái và bên phải, bạn thực sự có thể ánh xạ bất kỳ thứ gì bạn muốn từ

29
00:01:57,620 --> 00:02:01,860
‫máy chủ lưu trữ vào vùng chứa và bạn cũng có thể chỉ định những thứ như chỉ đọc.

30
00:02:01,880 --> 00:02:07,910
‫Nơi điều này thực sự trở nên tỏa sáng là với các dịch vụ phát triển và chạy bên trong vùng chứa của bạn

31
00:02:07,910 --> 00:02:12,940
‫đang truy cập các tệp bạn đang sử dụng trên máy chủ lưu trữ của mình hoặc đang thay đổi.

32
00:02:12,950 --> 00:02:14,720
‫Hãy làm điều đó với Nginx.

33
00:02:14,930 --> 00:02:22,370
‫Nếu bạn truy cập thư mục gốc của kho lưu trữ của chúng tôi cho khóa học này, và sau đó chúng tôi đi vào thư

34
00:02:22,370 --> 00:02:24,750
‫mục Dockerfile mẫu 2. Bây giờ chúng tôi đã ở đây sớm hơn.

35
00:02:24,770 --> 00:02:28,580
‫Nếu bạn nhớ, có hai tệp. Đây là dành cho Nginx, phải không?

36
00:02:28,580 --> 00:02:36,530
‫Nếu chúng ta xem Dockerfile thực sự nhanh chóng, nó khá đơn giản. Nó chỉ xác định một thư mục làm việc và sau đó sao chép

37
00:02:36,560 --> 00:02:39,050
‫một tệp chỉ mục vào thư mục đó.

38
00:02:39,050 --> 00:02:40,490
‫Không có tập nào ở đây.

39
00:02:40,490 --> 00:02:45,290
‫Một liên kết gắn kết không yêu cầu một khối lượng để hoạt động, mặc dù chắc chắn một khối lượng có thể ở đó.

40
00:02:45,530 --> 00:02:52,590
‫Chủ nhà luôn thắng, nhớ không? Vì vậy, khi chúng tôi thực hiện chạy bộ chứa docker, sau đó

41
00:02:52,630 --> 00:02:56,330
‫chúng tôi thực hiện -d ... hãy đặt tên nó là nginx.

42
00:02:56,390 --> 00:03:00,420
‫Hãy cung cấp cho nó cổng 8080 như trước.

43
00:03:00,770 --> 00:03:06,470
‫Sau đó, chúng tôi sẽ cung cấp cho nó tập lần này. Và tôi cần phải nói với nó rằng thư mục làm việc hiện tại của tôi

44
00:03:06,650 --> 00:03:12,230
‫sẽ thực sự được gắn vào thư mục làm việc đó trong vùng chứa. Bởi vì tệp chỉ mục của tôi ở đây trong thư mục

45
00:03:12,230 --> 00:03:13,390
‫này, tôi muốn nó

46
00:03:13,430 --> 00:03:19,040
‫nằm trong vùng chứa để tôi có thể chỉnh sửa nó ở đây và nó được nhìn thấy trực tiếp trong vùng chứa.

47
00:03:19,040 --> 00:03:20,320
‫Vì vậy, nó sẽ có ý nghĩa trong một giây.

48
00:03:20,540 --> 00:03:24,280
‫Đây là một mẹo nhỏ nhanh chóng. Thay vì tôi phải tìm ra toàn bộ

49
00:03:24,290 --> 00:03:28,370
‫con đường của mình và nhập toàn bộ vào, bạn có thể sử dụng pwd ở đây như vậy.

50
00:03:28,460 --> 00:03:35,570
‫Đó là một lối tắt shell có nội dung, 'in thư mục làm việc ra và thay thế lệnh này bằng đường dẫn

51
00:03:35,570 --> 00:03:36,210
‫đó.

52
00:03:36,380 --> 00:03:43,460
‫'Sau đó, chúng tôi sẽ chỉ sử dụng cùng một thư mục làm việc từ Dockerfile ở đó, và sau đó chúng tôi

53
00:03:43,460 --> 00:03:45,360
‫sẽ chỉ định hình ảnh Nginx.

54
00:03:47,590 --> 00:03:52,930
‫Những gì tôi sẽ làm, rất nhanh, là tôi thực sự sẽ mở một cửa sổ thiết bị đầu cuối khác để chúng ta có

55
00:03:52,930 --> 00:03:54,480
‫thể làm hai việc cùng một lúc.

56
00:03:54,590 --> 00:03:56,010
‫Bạn không thực sự cần phải làm điều này.

57
00:03:56,050 --> 00:04:01,840
‫Về cơ bản, chúng tôi sẽ chỉnh sửa tệp trên máy chủ của chúng tôi, và sau đó tôi sẽ ở trong vùng chứa và xem điều

58
00:04:01,840 --> 00:04:02,780
‫gì đang xảy ra.

59
00:04:02,920 --> 00:04:04,730
‫Vì vậy, để đảm bảo rằng nó

60
00:04:04,780 --> 00:04:06,350
‫hoạt động, hãy vào localhost.

61
00:04:06,700 --> 00:04:10,000
‫OK, vì vậy đây không phải là tệp HTML Nginx mặc định.

62
00:04:10,030 --> 00:04:13,080
‫Và chúng tôi đã sử dụng hình ảnh Nginx thông thường.

63
00:04:13,090 --> 00:04:16,580
‫Chúng tôi đã không thực sự sử dụng tùy chỉnh từ thư mục này.

64
00:04:16,690 --> 00:04:24,270
‫Chúng tôi chỉ sử dụng một hình ảnh có sẵn. Để chứng minh quan điểm đó, chúng ta thực sự có thể

65
00:04:24,280 --> 00:04:37,390
‫thực hiện lại lệnh chính xác tương tự nhưng lấy ra -v và thay vào đó tôi sẽ chạy nó trên cổng 8080. Và tôi sẽ gọi cái này là nginx2.

66
00:04:37,420 --> 00:04:47,930
‫Nếu tôi truy cập trình duyệt của mình và truy cập localhost 8080, đó là chỉ mục nginx mặc định. tệp html.

67
00:04:48,010 --> 00:04:52,130
‫Cái này là cái tùy chỉnh mà chúng ta đang sống trong thư mục này.

68
00:04:52,780 --> 00:04:56,380
‫Vì vậy, chúng ta đã có thể thấy rằng nó đã ánh xạ nó một cách chính xác.

69
00:04:56,560 --> 00:05:03,010
‫Nếu tôi mở một tab khác ở đây và nhận được một dòng lệnh trong vùng chứa.

70
00:05:08,800 --> 00:05:10,130
‫Sau đó vào thư mục đó.

71
00:05:17,710 --> 00:05:21,580
‫Bạn sẽ nhận thấy rằng chúng tôi thực sự có thể thấy Dockerfile vì chúng tôi ánh xạ toàn bộ thư mục.

72
00:05:21,620 --> 00:05:27,460
‫Nếu ở bên trái, nếu chúng tôi thực sự tạo một tệp mới và tôi chỉ có thể sử dụng lệnh chạm Linux đó tại

73
00:05:30,440 --> 00:05:37,010
‫đây để tạo tệp mới. Sau đó, qua bên phải ... ối... hãy cứ quên điều đó đi ... ls -al, và bạn sẽ thấy điều đó

74
00:05:37,010 --> 00:05:37,900
‫trong tệp của mình.

75
00:05:37,970 --> 00:05:43,350
‫Hy vọng rằng bạn hiểu những gì đang xảy ra ở đây, rằng cả hai địa điểm này đều là cùng một địa điểm.

76
00:05:43,370 --> 00:05:47,350
‫Và nếu tôi lặp lại điều gì đó vào tệp testme đó, và

77
00:05:57,430 --> 00:05:58,420
‫sau đó ...

78
00:06:01,620 --> 00:06:02,410
‫đây bạn đi.

79
00:06:02,410 --> 00:06:06,670
‫Nginx của chúng tôi có thể thấy các thay đổi vì đó chỉ là một đường dẫn tệp bình thường trong vùng chứa

80
00:06:06,670 --> 00:06:08,720
‫và các tệp đó nằm trên máy chủ lưu trữ.

81
00:06:08,830 --> 00:06:12,670
‫Nếu tôi xóa chúng trong vùng chứa, chúng sẽ bị xóa trên máy chủ lưu trữ vì nó là cùng

82
00:06:12,670 --> 00:06:13,210
‫một tệp.

83
00:06:13,210 --> 00:06:19,090
‫Đây là lúc tôi thường yêu cầu một nhà phát triển để tâm trí của họ suy nghĩ về tất cả các môi trường phát

84
00:06:19,090 --> 00:06:24,670
‫triển của họ mà họ có, thiết lập phức tạp này. Có thể họ đang sử dụng Vagrant hoặc một số phương pháp thủ công

85
00:06:24,670 --> 00:06:30,880
‫khác để thiết lập môi trường hoàn hảo của họ và họ có thể bắt đầu thấy cách điều này có thể làm cho điều đó trở nên đơn giản hơn nhiều.

86
00:06:31,330 --> 00:06:35,920
‫Bởi vì tôi không phải thực hiện bất kỳ thiết lập phức tạp nào trên máy Mac của mình, tôi chỉ chạy một vùng chứa.

87
00:06:35,920 --> 00:06:43,670
‫Tôi đã sử dụng lệnh -v với mount và bây giờ mã của tôi, trên máy chủ của tôi, có thể được chỉnh sửa trên máy chủ của tôi.

88
00:06:43,840 --> 00:06:47,890
‫Và tôi thực sự không bao giờ cần phải đi vào vỏ của vật chứa.

89
00:06:47,890 --> 00:06:52,570
‫Thông thường, bạn có thể chỉ cần chạy vùng chứa và xem nhật ký của nó để xem liệu có bất kỳ lỗi nào trong khi viết

90
00:06:52,570 --> 00:06:53,260
‫mã hay không.

91
00:06:53,500 --> 00:06:58,750
‫Tất nhiên, đây là một ví dụ đơn giản với Nginx. Sau đó, chúng tôi thực sự sẽ có các ví

92
00:06:58,750 --> 00:07:03,160
‫dụ cụ thể về các môi trường phát triển khác nhau để phát triển cục bộ và vùng chứa.

