﻿1
00:00:04,670 --> 00:00:09,710
‫حسنا. تبدو الأحجام بسيطة جدًا مقدمًا ، ولكن في الواقع هناك الكثير منها.

2
00:00:09,710 --> 00:00:16,480
‫الطريقة الأولى التي يمكنك من خلالها إخبار حاوية أنها بحاجة إلى القلق بشأن وحدة تخزين هي في Dockerfile.

3
00:00:16,480 --> 00:00:18,540
‫دعنا نذهب للتحقق من بعض هؤلاء.

4
00:00:18,590 --> 00:00:21,040
‫سأفعل ما أفعله كثيرًا.

5
00:00:21,170 --> 00:00:24,110
‫سأبحث عن MySQL.

6
00:00:24,320 --> 00:00:30,320
‫هذه هي الطريقة التي تعلمت بها الكثير عن Dockerfiles ، وكيفية استخدامها بشكل صحيح ، هي أن المستودعات الرسمية

7
00:00:30,380 --> 00:00:34,040
‫لديها بالفعل قيم افتراضية سليمة وأفضل الممارسات المضمنة فيها.

8
00:00:34,040 --> 00:00:40,250
‫عندما أذهب هنا إلى MySQL One ، سأضغط على أحدث ملف Dockerfile هنا. أراهن أنك لأنها قاعدة بيانات ، فمن

9
00:00:40,250 --> 00:00:45,040
‫المحتمل أنها تحتوي على أمر وحدة تخزين فيها.

10
00:00:45,200 --> 00:00:45,950
‫هناك نذهب.

11
00:00:45,950 --> 00:00:52,640
‫هذا هو الموقع الافتراضي لقواعد بيانات MySQL. تمت برمجة هذه الصورة بطريقة تخبر Docker أنه

12
00:00:52,640 --> 00:00:58,670
‫عندما نبدأ حاوية جديدة منها ، فإننا نقوم بالفعل بإنشاء موقع وحدة تخزين جديد

13
00:00:58,670 --> 00:01:05,450
‫وتعيينه إلى هذا الدليل في الحاوية. مما يعني أن أي ملفات نضعها هناك ، في الحاوية ، ستظل

14
00:01:05,450 --> 00:01:08,600
‫أطول من الحاوية حتى نحذف المجلد يدويًا.

15
00:01:08,660 --> 00:01:13,250
‫وهذا شيء يجب أن نشير إليه هنا هو أن المجلدات تحتاج إلى حذف يدوي.

16
00:01:13,280 --> 00:01:15,900
‫لا يمكنك تنظيفها بمجرد إزالة وعاء.

17
00:01:15,930 --> 00:01:21,350
‫إنها خطوة إضافية. هذا فقط للتأمين حقًا ، لأن الهدف الكامل لأمر

18
00:01:21,380 --> 00:01:26,990
‫الحجم هو القول بأن هذه البيانات مهمة بشكل خاص ، على الأقل أكثر أهمية من الحاوية نفسها.

19
00:01:26,990 --> 00:01:29,930
‫إذا قمنا بسحب عامل الإرساء على MySQL ، ثم

20
00:01:33,500 --> 00:01:40,360
‫قمت بفحص صورة عامل الإرساء على MySQL ، فلن نتمكن من رؤية Dockerfile لأن ملف Docker ليس في الواقع

21
00:01:40,370 --> 00:01:46,340
‫جزءًا من البيانات الوصفية للصورة ، والتي ستلاحظها في هذا التكوين ، أنه حدد هذا الحجم

22
00:01:46,340 --> 00:01:47,680
‫هناك.

23
00:01:47,810 --> 00:01:53,600
‫يمكنني دائمًا أن أقول إن التكوين ، الذي جاء من Dockerfile عندما تم إنشاؤه ، خصص وحدة تخزين لهذا

24
00:01:53,600 --> 00:01:54,460
‫المسار.

25
00:01:54,470 --> 00:01:57,150
‫لنقم بتشغيل حاوية منه.

26
00:02:00,990 --> 00:02:05,640
‫لذا تشغيل حاوية عامل ميناء -d --name mysql.

27
00:02:05,730 --> 00:02:09,120
‫إذا كنت تتذكر من قبل ، فإن MySQL واحد مميز قليلاً.

28
00:02:09,230 --> 00:02:11,390
‫يتطلب الآن متغير بيئة

29
00:02:11,400 --> 00:02:13,450
‫قبل أن يعمل.

30
00:02:13,530 --> 00:02:19,090
‫إنها MYSQL_ALLOW_EMPTY_PASSWORD.

31
00:02:19,180 --> 00:02:19,430
‫نعم.

32
00:02:22,810 --> 00:02:29,020
‫ما تراه هو تشغيل MySQL. إذا قمنا بفحص حاوية عامل الإرساء

33
00:02:29,170 --> 00:02:37,200
‫mysql ، فسنرى نفس الشيء حيث يخبرنا في التكوين أن هناك مجلدًا.

34
00:02:38,360 --> 00:02:39,370
‫هنا.

35
00:02:39,450 --> 00:02:47,400
‫يمكننا أيضًا رؤيته هنا في الأعلى. ما هذا ، هو أن هذه الحاوية قيد التشغيل تحصل فعليًا على موقع

36
00:02:47,400 --> 00:02:55,770
‫فريد خاص بها على المضيف ، لتخزين تلك البيانات ، ثم تكون في الخلفية ، أو تم تعيينها أو تثبيتها ، في ذلك الموقع في الحاوية

37
00:02:55,770 --> 00:02:59,730
‫، بحيث يكون الموقع في الحاوية في الواقع فقط يعتقد أنها تكتب

38
00:02:59,730 --> 00:03:02,040
‫إلى / var / lib / mysql.

39
00:03:02,310 --> 00:03:08,570
‫في هذه الحالة ، يمكننا أن نرى أن البيانات تعيش بالفعل في ذلك الموقع على المضيف. لنقم بعمل حجم عامل الإرساء ls

40
00:03:08,570 --> 00:03:10,790
‫، ويمكننا أن نرى أن لدينا

41
00:03:10,860 --> 00:03:16,760
‫الآن مجلدًا واحدًا. الآن نلاحظ أن هذا يحتوي على هذا المعرف الفريد الذي لن نعرف أبدًا

42
00:03:16,760 --> 00:03:18,560
‫ما الذي ينتقل إليه ، أليس كذلك؟

43
00:03:18,560 --> 00:03:21,090
‫لذا ، دعونا نفحص ذلك.

44
00:03:21,150 --> 00:03:22,310
‫ليس عليك كتابة كل شيء.

45
00:03:22,310 --> 00:03:26,270
‫يمكنك فقط كتابة أول حرفين والضغط على Tab لإكمالها. ستحصل على هذه المعلومات المماثلة

46
00:03:26,270 --> 00:03:28,390
‫حول المجلد نفسه.

47
00:03:29,440 --> 00:03:35,050
‫إذا كنت تقوم بذلك بالفعل على جهاز Linux ، فيمكنك الانتقال إلى هذا الموقع على محرك الأقراص الثابتة

48
00:03:35,050 --> 00:03:36,790
‫ومشاهدة البيانات.

49
00:03:37,090 --> 00:03:38,530
‫سيكون هناك بالفعل بعض قواعد البيانات هناك.

50
00:03:38,560 --> 00:03:43,870
‫إذا كنت تستخدم جهاز Mac أو Windows ، فتذكر أن Docker for Windows و Docker for

51
00:03:43,870 --> 00:03:49,620
‫Mac يعملان في الواقع قليلاً في الخلفية المخفية عنا حيث يتم إنشاء Linux VM.

52
00:03:49,750 --> 00:03:55,420
‫إذن هذه البيانات تقنيًا موجودة داخل جهاز Linux VM. لن تكون قادرًا على الذهاب إلى هذا المسار على جهاز Windows

53
00:03:55,450 --> 00:03:59,530
‫أو Mac الخاص بك ورؤية البيانات. إنه في الواقع داخل ذلك الجهاز الظاهري.

54
00:03:59,530 --> 00:04:04,210
‫سنرى بعد قليل ، مع الأحجام المركبة ، كيف يمكننا تجاوز هذا القيد أيضًا.

55
00:04:04,210 --> 00:04:10,810
‫من خلال النظر إلى هذا ، تلاحظ أنه ليس سهل الاستخدام للغاية من حيث إخبارنا بما

56
00:04:11,140 --> 00:04:14,250
‫يحتويه أو ما تم تخصيص هذا المجلد له.

57
00:04:14,260 --> 00:04:20,260
‫يمكننا أن نرى من منظور الحاوية الحجم الذي تستخدمه ، لكن لا يمكننا أن نرى من منظور

58
00:04:20,410 --> 00:04:22,150
‫الحجم ما يتصل به.

59
00:04:22,150 --> 00:04:22,910
‫حق؟

60
00:04:23,230 --> 00:04:28,910
‫إذا كنت سأقوم فقط بضرب السهم لأعلى ، ودعنا نرى ، إنشاء mysql2.

61
00:04:29,170 --> 00:04:32,190
‫لقد تم الآن إنشاء خادم MySQL آخر يعمل في الخلفية.

62
00:04:32,200 --> 00:04:36,430
‫إذا قمت بعمل وحدة تخزين أخرى لرسو السفن ، فسترى اثنين منهم.

63
00:04:36,430 --> 00:04:37,770
‫تبدأ في رؤية المشكلة ، أليس كذلك؟

64
00:04:37,790 --> 00:04:41,630
‫لا توجد طريقة سهلة حقيقية هنا لتمييز أحدهما عن الآخر.

65
00:04:41,740 --> 00:04:53,500
‫إذا كنا فقط ، لإثبات نقطة ، فقم بإيقاف mysql في حاوية عامل الميناء ، و docker ، توقف الحاوية

66
00:04:53,590 --> 00:04:54,930
‫mysql2.

67
00:04:55,190 --> 00:05:01,180
‫نحن نقوم بعمل حاوية لرسو السفن ، ولن نرى أي حاويات قيد التشغيل. إذا قمنا بإجراء ls -a ، فسوف

68
00:05:01,180 --> 00:05:06,900
‫نراهم جميعًا. ولاحظوا أنهم توقفوا. ثم نقوم بعمل حجم عامل الإرساء ls ، ستلاحظ

69
00:05:06,910 --> 00:05:08,580
‫أنه لا يزال لدينا المجلدين.

70
00:05:08,590 --> 00:05:16,390
‫إذا قمت بعمل حاوية عامل إرساء rm mysql ، ثم mysql2 ، لأنني أستطيع فعلاً فعل هذين الأمرين في أمر واحد ، فسيؤدي

71
00:05:16,390 --> 00:05:23,590
‫ذلك إلى إزالة كلتا الحاويات الخاصة بي. إذا قمت الآن بعمل وحدة تخزين لوحدة الإرساء ، فإن مجلداتي

72
00:05:23,590 --> 00:05:26,560
‫لا تزال موجودة. بياناتي لا تزال آمنة.

73
00:05:26,560 --> 00:05:28,510
‫إذن ، لقد حللنا مشكلة واحدة.

74
00:05:28,510 --> 00:05:31,660
‫قواعد البيانات أطول من الملف القابل للتنفيذ.

75
00:05:31,660 --> 00:05:34,180
‫كيف نجعل هذا أكثر سهولة في الاستخدام؟

76
00:05:35,090 --> 00:05:40,010
‫هذا هو المكان الذي تأتي فيه المجلدات المسماة والقدرة على تحديد الأشياء في أمر

77
00:05:40,010 --> 00:05:40,850
‫Docker run.

78
00:05:41,120 --> 00:05:47,810
‫إذا قمت بضرب السهم لأعلى عدة مرات حتى أصل إلى تشغيل حاوية عامل الإرساء ، فلا يهم حقًا أي واحد ستقوم

79
00:05:47,810 --> 00:05:49,600
‫بتشغيله مرة أخرى.

80
00:05:50,820 --> 00:05:59,340
‫في هذه الحالة ، سنقوم في الواقع بإلقاء الأمر a -v. يسمح لنا A -v بتحديد إما وحدة تخزين جديدة

81
00:05:59,370 --> 00:06:07,500
‫نريد إنشاؤها لهذه الحاوية التي على وشك التشغيل ، أو تتيح لنا خيارين آخرين.

82
00:06:07,500 --> 00:06:10,320
‫واحد منهم هنا هو إنشاء مجلد مسمى.

83
00:06:10,320 --> 00:06:17,660
‫إذا قمت للتو بـ -v ، ثم var lib mysql ، فسيؤدي ذلك إلى نفس الشيء الذي فعله أمر

84
00:06:17,670 --> 00:06:20,040
‫المجلد في Dockerfile.

85
00:06:20,040 --> 00:06:24,970
‫لا نحتاج حقًا إلى القيام بذلك هنا. ولكن ما يمكننا فعله هو أنه يمكنني وضع اسم

86
00:06:26,810 --> 00:06:29,930
‫أمامه بنقطتين. يُعرف هذا باسم "المجلد المسمى. "عندما أفعل ذلك

87
00:06:30,080 --> 00:06:38,000
‫، ثم أقوم بعمل وحدة تخزين لوحدة الإرساء ls ، سترى أن الحاوية الجديدة الخاصة بي تستخدم وحدة تخزين جديدة وتستخدم اسمًا

88
00:06:38,180 --> 00:06:39,300
‫مألوفًا.

89
00:06:39,320 --> 00:06:45,980
‫إذا قمنا بفحص حجم عامل الإرساء في ملف mysql هذا ، فسترى أن هذا أسهل في الاستخدام هنا.

90
00:06:46,010 --> 00:06:49,550
‫إذا قمت بحذف الحاوية الخاصة بي مرة أخرى ، وكان علينا وضع a -f

91
00:06:52,470 --> 00:06:59,040
‫لأنها لا تزال قيد التشغيل ، ثم أقوم بتشغيل حاوية أخرى. وهذه المرة ، سأطلق عليها

92
00:06:59,040 --> 00:07:04,280
‫اسمًا مختلفًا. ثم نقوم بعمل وحدة تخزين أخرى لرسو السفن ، سترى

93
00:07:04,280 --> 00:07:09,420
‫أنه يبدو أننا لم ننشئ وحدة تخزين جديدة. لا يزال يستخدم نفس الحجم.

94
00:07:09,420 --> 00:07:17,680
‫لنقم بفحص حاوية عامل ميناء في mysql3. ثم ما سنراه هنا هو ، نعم ، هذا ما تم تكوينه

95
00:07:18,990 --> 00:07:22,860
‫ولكن ما الذي نقوم بتشغيله؟

96
00:07:22,880 --> 00:07:24,300
‫هذه هي حواملنا هنا.

97
00:07:24,560 --> 00:07:29,510
‫سنرى هنا أن الاسم ليس أكثر ودية فحسب ، ولكنه في الواقع غير موقع المصدر ليكون

98
00:07:29,510 --> 00:07:30,980
‫أكثر ودية أيضًا.

99
00:07:31,280 --> 00:07:38,480
‫بالنسبة لي ، نصيحة صغيرة هنا هي أنه عندما أعمل لأيام أو أسابيع في كل مرة ، قاعدة بيانات معينة ، في حاوية

100
00:07:38,540 --> 00:07:43,460
‫معينة أحتاج إلى الاستمرار في استخدامها مرارًا وتكرارًا ولا أريد

101
00:07:43,460 --> 00:07:50,930
‫خادم قاعدة بيانات فارغًا ، سأنتهي في إنشاء حاوياتي بهذه الطريقة وتسميتها للمشروع حتى أعرف ما هو هذا

102
00:07:50,930 --> 00:07:52,250
‫المجلد ، وأنه يجب أن

103
00:07:52,370 --> 00:07:53,900
‫يظل موجودًا.

104
00:07:57,840 --> 00:07:59,200
‫آخر شيء هنا.

105
00:08:00,130 --> 00:08:06,390
‫لماذا تريد إنشاء وحدة تخزين عامل الإرساء؟

106
00:08:06,550 --> 00:08:13,750
‫إذا تمكنا من إنشائها من أمر تشغيل حاوية عامل الإرساء في وقت التشغيل ، ويمكننا إنشاؤها عن طريق تحديدها في Dockerfile ، فهناك فقط

107
00:08:13,750 --> 00:08:18,670
‫حالات قليلة ترغب في إنشائها فيها مسبقًا. ويمكنك بالفعل معرفة ذلك بسرعة

108
00:08:18,670 --> 00:08:21,320
‫كبيرة باستخدام أمر المساعدة.

109
00:08:22,210 --> 00:08:26,580
‫لأن هذه هي الطريقة الوحيدة التي يمكننا بها تحديد محرك مختلف.

110
00:08:26,590 --> 00:08:28,890
‫هل تتذكر أشياء المكونات الإضافية التي سأتحدث عنها لاحقًا؟

111
00:08:29,020 --> 00:08:33,370
‫ثم أي خيارات سائق نريد استخدام -o on.

112
00:08:33,370 --> 00:08:37,090
‫ثم إذا أردنا وضع ملصقات عليها ، والتي سنتحدث عنها أيضًا لاحقًا في قسم الإنتاج.

113
00:08:37,090 --> 00:08:42,530
‫في بعض الأحيان ، في حالات خاصة ، تحتاج إلى إنشاء وحدة تخزين Docker مسبقًا ، ولكن عادةً لأغراض

114
00:08:42,540 --> 00:08:46,610
‫التطوير المحلي ، لا بأس من تحديده في Dockerfile أو في أمر التشغيل.

