﻿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 ฉันจะคลิกที่ 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

12
00:00:52,640 --> 00:01:05,450
‫อิมเมจนี้ถูกโปรแกรมในลักษณะที่จะบอกนักเทียบท่าว่าเมื่อเราเริ่มต้นคอนเทนเนอร์ใหม่จากมันเพื่อสร้างตำแหน่งวอลุ่มใหม่และกำหนดให้กับไดเร็กทอรีนี้ในคอนเทนเนอร์

13
00:01:05,450 --> 00:01:08,600
‫ซึ่งหมายความว่าไฟล์ใด ๆ ที่เราใส่เข้าไปในนั้นจะอยู่ได้นานกว่าคอนเทนเนอร์จนกว่าเราจะลบโวลุ่มด้วยตนเอง

14
00:01:08,660 --> 00:01:13,250
‫และนั่นคือสิ่งที่เราควรชี้ให้เห็นตรงนี้คือปริมาณต้องการลบด้วยตนเอง

15
00:01:13,280 --> 00:01:15,900
‫คุณไม่สามารถทำความสะอาดได้เพียงแค่เอาภาชนะออก

16
00:01:15,930 --> 00:01:21,350
‫มันเป็นขั้นตอนพิเศษ

17
00:01:21,380 --> 00:01:26,990
‫นั่นเป็นเพียงการประกันจริงๆแล้วเพราะจุดรวมของคำสั่งปริมาณคือการบอกว่าข้อมูลนี้มีความสำคัญเป็นพิเศษอย่างน้อยก็สำคัญกว่าตัวคอนเทนเนอร์เอง

18
00:01:26,990 --> 00:01:29,930
‫ถ้าเราดึงนักเทียบท่าบน

19
00:01:33,500 --> 00:01:40,360
‫MySQL และจากนั้นฉันจะทำการตรวจสอบรูปภาพนักเทียบท่าบน MySQL เราจะไม่เห็น

20
00:01:40,370 --> 00:01:47,680
‫Dockerfile เพราะไฟล์นักเทียบท่าไม่ได้เป็นส่วนหนึ่งของข้อมูลเมตาของรูปภาพซึ่งคุณจะสังเกตเห็นในเรื่องนี้ พื้นที่ config ที่มันระบุปริมาณนั้น

21
00:01:47,810 --> 00:01:54,460
‫ฉันสามารถบอกได้เสมอว่าการกำหนดค่าที่มาจาก Dockerfile เมื่อมันถูกสร้างขึ้นกำหนดปริมาณให้กับเส้นทางนั้น

22
00:01:54,470 --> 00:01:57,150
‫ลองเรียกใช้คอนเทนเนอร์จากมัน

23
00:02:00,990 --> 00:02:05,640
‫ดังนั้นนักเทียบท่าตู้คอนเทนเนอร์เรียกใช้ -d - ชื่อ mysql

24
00:02:05,730 --> 00:02:09,120
‫ถ้าคุณจำจากก่อนหน้านี้หนึ่ง MySQL เป็นพิเศษเล็กน้อย

25
00:02:09,230 --> 00:02:13,450
‫ตอนนี้ต้องการตัวแปรสภาพแวดล้อมก่อนที่มันจะทำงาน

26
00:02:13,530 --> 00:02:19,090
‫มันคือ MYSQL_ALLOW_EMPTY_PASSWORD

27
00:02:19,180 --> 00:02:19,430
‫ตกลง.

28
00:02:22,810 --> 00:02:29,020
‫สิ่งที่คุณเห็นคือ MySQL กำลังทำงาน

29
00:02:29,170 --> 00:02:37,200
‫ถ้าเราทำท่าเทียบเรือตรวจสอบ mysql เราควรเห็นสิ่งเดียวกันกับที่มันบอกเราในการตั้งค่าว่ามีโวลุ่ม

30
00:02:38,360 --> 00:02:39,370
‫ที่นี่

31
00:02:39,450 --> 00:02:47,400
‫เราสามารถเห็นมันได้ที่นี่ภายใต้ภูเขา สิ่งนี้คือนี่เป็นภาชนะที่ใช้งานจริงที่ได้รับตำแหน่งที่เป็นเอกลักษณ์ของตัวเองบนโฮสต์เพื่อจัดเก็บข้อมูลนั้นและจากนั้นในพื้นหลังแมปหรือเมาต์ไปยังตำแหน่งนั้นในคอนเทนเนอร์เพื่อให้ตำแหน่งในคอนเทนเนอร์นั้น

32
00:02:47,400 --> 00:02:55,770
‫ที่จริงแค่คิดว่ามันเขียนถึง / var /

33
00:02:55,770 --> 00:03:02,040
‫lib / mysql

34
00:03:02,310 --> 00:03:08,570
‫ในกรณีนี้เราจะเห็นว่าข้อมูลนั้นอาศัยอยู่ในสถานที่จริงบนโฮสต์

35
00:03:08,570 --> 00:03:16,760
‫ลองทำปริมาตรตัวเทียบท่ากันแล้วเราจะเห็นว่าตอนนี้เรามีหนึ่งโวลุ่ม

36
00:03:16,760 --> 00:03:18,560
‫ตอนนี้เราสังเกตเห็นว่ามันมีรหัสเฉพาะที่เราจะไม่มีทางรู้ว่าสิ่งที่เกิดขึ้นนั้นเป็นอย่างไร

37
00:03:18,560 --> 00:03:21,090
‫ดังนั้นเรามาตรวจสอบกันก่อน

38
00:03:21,150 --> 00:03:22,310
‫คุณไม่จำเป็นต้องพิมพ์ทุกอย่างออกมา

39
00:03:22,310 --> 00:03:26,270
‫คุณสามารถพิมพ์อักขระสองสามตัวแรกแล้วกด Tab เพื่อทำให้เสร็จสมบูรณ์

40
00:03:26,270 --> 00:03:28,390
‫คุณจะได้รับข้อมูลที่คล้ายกันเกี่ยวกับระดับเสียง

41
00:03:29,440 --> 00:03:36,790
‫หากคุณกำลังทำสิ่งนี้กับเครื่อง Linux คุณสามารถนำทางไปยังตำแหน่งนั้นบนฮาร์ดไดรฟ์และดูข้อมูล

42
00:03:37,090 --> 00:03:38,530
‫จริงๆแล้วจะมีฐานข้อมูลบางส่วนที่นั่น

43
00:03:38,560 --> 00:03:43,870
‫หากคุณใช้ Mac หรือ Windows โปรดจำไว้ว่า Docker สำหรับ

44
00:03:43,870 --> 00:03:49,620
‫Windows และ Docker สำหรับ Mac กำลังทำพื้นหลังเล็กน้อยซึ่งซ่อนอยู่จากเราซึ่งมันสร้าง Linux VM ขึ้นมา

45
00:03:49,750 --> 00:03:55,420
‫ดังนั้นข้อมูลนี้เป็นเทคนิคใน Linux VM นั้น คุณจะไม่สามารถไปยังเส้นทางนั้นบนเครื่อง Windows หรือ

46
00:03:55,450 --> 00:03:59,530
‫Mac ของคุณและดูข้อมูลได้ เป็นจริงภายใน VM นั้น

47
00:03:59,530 --> 00:04:04,210
‫เราจะเห็นทีละน้อยด้วยโวลุ่มที่เมาท์วิธีที่เราสามารถแก้ไขข้อ จำกัด นั้นได้เช่นกัน

48
00:04:04,210 --> 00:04:14,250
‫เมื่อดูที่นี้คุณจะสังเกตเห็นว่าผู้ใช้ไม่ค่อยเป็นมิตรในแง่ของการบอกเราว่ามีอะไรอยู่ในนั้นหรืออะไรที่กำหนดให้กับไดรฟ์ข้อมูลนี้

49
00:04:14,260 --> 00:04:22,150
‫เราสามารถเห็นได้จากมุมมองของคอนเทนเนอร์ที่ใช้ปริมาตร แต่เราไม่สามารถเห็นได้จากมุมมองปริมาณที่เชื่อมต่อ

50
00:04:22,150 --> 00:04:22,910
‫ขวา?

51
00:04:23,230 --> 00:04:28,910
‫ถ้าฉันเพียงกดลูกศรขึ้นแล้วมาดูกันสร้าง mysql2

52
00:04:29,170 --> 00:04:32,190
‫ตอนนี้สร้างเซิร์ฟเวอร์ MySQL ตัวอื่นที่ทำงานในพื้นหลังแล้ว

53
00:04:32,200 --> 00:04:36,430
‫ถ้าฉันทำปริมาณนักเทียบท่าอีก ls คุณจะเห็นสองของพวกเขา

54
00:04:36,430 --> 00:04:37,770
‫คุณเริ่มเห็นปัญหาใช่มั้ย

55
00:04:37,790 --> 00:04:41,630
‫ไม่มีวิธีง่ายๆที่นี่จริง ๆ ที่จะบอกจากที่อื่น

56
00:04:41,740 --> 00:04:53,500
‫หากเราเพียงเพื่อพิสูจน์จุดทำ docker container stop mysql และ docker container stop

57
00:04:53,590 --> 00:04:54,930
‫mysql2

58
00:04:55,190 --> 00:05:01,180
‫เราทำคอนเทนเนอร์นักเทียบท่า ls เราจะไม่เห็นคอนเทนเนอร์ใด ๆ ที่ทำงานอยู่ หากเราทำ ls-a

59
00:05:01,180 --> 00:05:06,900
‫เราจะได้เห็นพวกเขาทั้งหมด และสังเกตว่าพวกเขาหยุด แล้วเราก็ทำโวลุ่มนักเทียบท่า ls

60
00:05:06,910 --> 00:05:08,580
‫คุณสังเกตเห็นว่าเรายังมีสองโวลุ่ม

61
00:05:08,590 --> 00:05:16,390
‫ถ้าฉันทำ docker container rm mysql แล้ว mysql2

62
00:05:16,390 --> 00:05:26,560
‫เพราะฉันสามารถทำได้ทั้งสองอย่างในคำสั่งเดียวมันจะลบทั้งสอง container ถ้าตอนนี้ฉันทำโวลุ่มนักเทียบท่า ls, โวลุ่มของฉันยังอยู่ที่นั่น

63
00:05:26,560 --> 00:05:26,560
‫ข้อมูลของฉันยังปลอดภัย

64
00:05:26,560 --> 00:05:28,510
‫ดังนั้นเราจึงแก้ไขปัญหาหนึ่งข้อ

65
00:05:28,510 --> 00:05:31,660
‫ฐานข้อมูลมีอายุการใช้งานที่ยาวนานกว่า

66
00:05:31,660 --> 00:05:34,180
‫เราจะทำให้ผู้ใช้เป็นมิตรได้มากขึ้นได้อย่างไร

67
00:05:35,090 --> 00:05:40,850
‫นั่นคือสิ่งที่ปริมาณที่มีชื่อเข้ามาและความสามารถในการระบุสิ่งต่าง ๆ ในคำสั่งเรียกใช้นักเทียบท่า

68
00:05:41,120 --> 00:05:49,600
‫ถ้าฉันกดลูกศรขึ้นสองสามครั้งจนกว่าฉันจะไปที่ตู้เทียบท่าวิ่งมันไม่สำคัญเลยว่าคุณจะวิ่งอีกครั้ง

69
00:05:50,820 --> 00:05:59,340
‫ในกรณีนี้เราจะโยนคำสั่ง -v A

70
00:05:59,370 --> 00:06:07,500
‫-v ช่วยให้เราสามารถระบุไดรฟ์ข้อมูลใหม่ที่เราต้องการสร้างสำหรับคอนเทนเนอร์นี้ที่จะทำงานหรือมันช่วยให้เราสองตัวเลือกอื่น ๆ

71
00:06:07,500 --> 00:06:10,320
‫หนึ่งในนั้นที่นี่คือการสร้างไดรฟ์ที่มีชื่อ

72
00:06:10,320 --> 00:06:17,660
‫หากฉันเพิ่งทำ -v แล้ว var lib mysql ที่จะทำสิ่งเดียวกันคือสิ่งที่คำสั่งไดรฟ์ข้อมูลของเราใน

73
00:06:17,670 --> 00:06:20,040
‫Dockerfile ทำ

74
00:06:20,040 --> 00:06:29,930
‫เราไม่จำเป็นต้องทำเช่นนี้ที่นี่ แต่สิ่งที่เราทำได้คือฉันสามารถใส่ชื่อต่อหน้ามันด้วยเครื่องหมายโคลอน

75
00:06:29,930 --> 00:06:29,930
‫เรียกว่า "โวลุ่มที่มีชื่อ

76
00:06:30,080 --> 00:06:39,300
‫"เมื่อฉันทำเช่นนั้นและทำโวลุ่มนักเทียบท่าคุณจะเห็นว่าคอนเทนเนอร์ใหม่ของฉันกำลังใช้วอลลุ่มใหม่

77
00:06:39,320 --> 00:06:45,980
‫หากเราทำการตรวจสอบโวลเดอร์ด้วยวอลล์เปเปอร์คุณจะเห็นว่าใช้งานได้ง่ายกว่า

78
00:06:46,010 --> 00:06:49,550
‫ถ้าฉันลบที่เก็บของฉันอีกครั้งและเราต้องใส่ -f

79
00:06:52,470 --> 00:07:04,280
‫เพราะมันยังทำงานอยู่และจากนั้นฉันก็เรียกใช้อีกอัน และครั้งนี้ฉันจะให้ชื่ออื่น

80
00:07:04,280 --> 00:07:09,420
‫จากนั้นเราก็เพิ่มปริมาณนักเทียบท่าอีกครั้งคุณจะเห็นว่ามันดูเหมือนว่าเรายังไม่ได้สร้างโวลุ่มใหม่ มันยังคงใช้โวลุ่มเดียวกัน

81
00:07:09,420 --> 00:07:22,860
‫มาทำภาชนะเทียบท่าตรวจสอบที่ mysql3 จากนั้นสิ่งที่เราจะเห็นที่นี่คือใช่นี่คือสิ่งที่ถูกกำหนดค่า แต่เรากำลังทำงานอะไร

82
00:07:22,880 --> 00:07:24,300
‫นี่คือภูเขาของเราที่นี่

83
00:07:24,560 --> 00:07:30,980
‫เราจะเห็นที่นี่ว่าไม่เพียง แต่จะเป็นชื่อที่เป็นมิตรกว่า แต่มันก็เปลี่ยนที่มาของแหล่งข้อมูลให้เป็นมิตรขึ้นเล็กน้อยเช่นกัน

84
00:07:31,280 --> 00:07:43,460
‫สำหรับฉันคำแนะนำเล็กน้อยที่นี่คือเมื่อฉันทำงานเป็นเวลาหลายวันหรือหลายสัปดาห์ฐานข้อมูลเฉพาะในภาชนะเฉพาะที่ฉันต้องใช้ซ้ำไปเรื่อย ๆ และฉันไม่ต้องการเซิร์ฟเวอร์ฐานข้อมูลเปล่าฉัน

85
00:07:43,460 --> 00:07:53,900
‫ฉันจะสร้างภาชนะของฉันด้วยวิธีนี้และตั้งชื่อให้กับโครงการเพื่อที่ฉันจะได้ทราบว่าหนังสือเล่มนั้นมีไว้สำหรับอะไร

86
00:07:57,840 --> 00:07:59,200
‫สิ่งสุดท้ายที่นี่

87
00:08:00,130 --> 00:08:06,390
‫ทำไมคุณต้องการที่จะสร้างปริมาณนักเทียบท่า?

88
00:08:06,550 --> 00:08:18,670
‫หากเราสามารถสร้างพวกเขาจากคำสั่งเรียกใช้นักเทียบท่าที่รันไทม์และเราสามารถสร้างพวกมันได้โดยการระบุพวกมันใน Dockerfile มีเพียงไม่กี่กรณีที่คุณต้องการสร้างมันล่วงหน้า

89
00:08:18,670 --> 00:08:21,320
‫และคุณสามารถหาคำตอบได้อย่างรวดเร็วโดยใช้คำสั่ง help

90
00:08:22,210 --> 00:08:26,580
‫เพราะนี่เป็นวิธีเดียวที่เราสามารถระบุไดรเวอร์ที่แตกต่างได้

91
00:08:26,590 --> 00:08:28,890
‫จำสิ่งที่ปลั๊กอินที่ฉันจะพูดถึงในภายหลังหรือไม่

92
00:08:29,020 --> 00:08:33,370
‫จากนั้นตัวเลือกไดรเวอร์ใด ๆ ที่เราต้องการใช้ -o

93
00:08:33,370 --> 00:08:37,090
‫ถ้าเราต้องการใส่ป้ายกำกับเราจะพูดถึงในส่วนการผลิตด้วย

94
00:08:37,090 --> 00:08:42,530
‫บางครั้งในกรณีพิเศษคุณจำเป็นต้องสร้างไดรฟ์ข้อมูล Docker ล่วงหน้า แต่โดยปกติแล้วจะใช้เพื่อการพัฒนาในท้องถิ่นของคุณเพียงแค่ระบุไว้ใน Dockerfile

95
00:08:42,540 --> 00:08:46,610
‫หรือที่คำสั่ง run

