﻿1
00:00:02,530 --> 00:00:10,610
‫Bu derste, bind mount ve bu mount'lardaki kalıcı veriler hakkında konuşacağız. Gereksinimler gerçekten sadece konteyner yönetimi ve konteynerlerin

2
00:00:10,610 --> 00:00:15,300
‫nasıl çalıştırılacağı hakkında bilgi sahibi olmanızdır.

3
00:00:15,320 --> 00:00:20,230
‫Hadi başlayalım. Bağlama aparatları hakkında konuşalım. Aslında oldukça havalılar.

4
00:00:20,240 --> 00:00:25,550
‫Onları ilk öğrendiğimde, Docker'ı yerel geliştirme için nasıl kolayca kullanabileceğime dair bir

5
00:00:25,550 --> 00:00:26,180
‫aha verdi.

6
00:00:26,180 --> 00:00:33,380
‫Gerçekte, bir bind mount sadece ana bilgisayar dosyalarının veya dizinlerinin bir konteyner dosyasına veya dizinine

7
00:00:33,380 --> 00:00:35,330
‫eşlenmesidir. Bunu yapabilirsin.

8
00:00:35,330 --> 00:00:39,040
‫Bir dizin ya da sadece tek bir dosya belirtebilirsiniz. Arka planda, temel olarak iki

9
00:00:39,050 --> 00:00:43,780
‫konumun disk üzerinde aynı fiziksel konumlara işaret etmesi yeterlidir.

10
00:00:43,910 --> 00:00:49,730
‫Yine, bu aslında diğer birimlerin yaptığı gibi UFS'yi atlar, böylece konteyneri sildiğinizde

11
00:00:49,730 --> 00:00:52,620
‫ana bilgisayar konumunuzu silmeyecektir.

12
00:00:52,640 --> 00:00:58,550
‫Konteynerde ana bilgisayar dosyalarını eşlediğiniz herhangi bir dosya varsa, ana bilgisayar dosyaları kazanır. Aslında üzerine yazdığı konteynerdeki

13
00:00:58,550 --> 00:01:04,770
‫dosyaları silmez çünkü konteynerdeki hiçbir şeyin üzerine yazmaz.

14
00:01:04,910 --> 00:01:07,100
‫Sadece bağlama bağı var olduğu sürece oradadır.

15
00:01:07,100 --> 00:01:11,570
‫Artık bind mount'a ihtiyaç duymadığınız ve konteyneri onsuz yeniden çalıştırdığınız anda,

16
00:01:11,570 --> 00:01:17,650
‫aslında daha önce orada olan temel verileri göreceksiniz. Bind mount'lar genellikle ana bilgisayara özgü olduğundan,

17
00:01:17,660 --> 00:01:21,870
‫çalışmak için ana bilgisayarın sabit diskinde belirli verilerin olması gerekir.

18
00:01:21,890 --> 00:01:23,500
‫Bunları bir Docker dosyasında belirtemezsiniz.

19
00:01:23,510 --> 00:01:29,080
‫Docker container run komutunu kullandığınızda bunları çalışma zamanında kullanmanız gerekir. Formatı burada görebilirsiniz.

20
00:01:29,090 --> 00:01:33,980
‫Bu aslında daha önce kullandığımız -v'dir, sadece iki nokta üst üste işaretinin

21
00:01:34,100 --> 00:01:38,360
‫sol tarafına sadece bir isim yerine tam bir yol koyuyoruz.

22
00:01:38,360 --> 00:01:42,260
‫Docker'ın aslında bir süre önce yaptığımız gibi adlandırılmış birim ile bind mount arasındaki

23
00:01:42,410 --> 00:01:46,490
‫farkı anlayabilmesinin yolu, bind mount'un bir ileri eğik çizgi ile başlamasıdır.

24
00:01:46,490 --> 00:01:52,120
‫Windows'ta, iki ileri eğik çizgi ve ardından sürücü harfi ve ardından yolunuz olduğunu fark edeceksiniz.

25
00:01:52,130 --> 00:01:57,620
‫Sol iki nokta üst üste ve sağ taraflara sahip olduğunuz sürece, ana bilgisayardan konteynere istediğiniz her şeyi

26
00:01:57,620 --> 00:02:01,860
‫gerçekten eşleyebilirsiniz ve ayrıca salt okunur gibi şeyler de belirtebilirsiniz.

27
00:02:01,880 --> 00:02:07,910
‫Bunun gerçekten parladığı yer, ana bilgisayarınızda kullandığınız veya değiştirdiğiniz dosyalara

28
00:02:07,910 --> 00:02:12,940
‫erişen konteynerinizin içinde geliştirme ve çalıştırma hizmetleridir.

29
00:02:12,950 --> 00:02:14,720
‫Bunu Nginx ile yapalım.

30
00:02:14,930 --> 00:02:22,370
‫Bu kurs için depomuzun kök dizinine giderseniz ve ardından Dockerfile örnek 2 dizinine

31
00:02:22,370 --> 00:02:24,750
‫girersek. Daha önce de buradaydık.

32
00:02:24,770 --> 00:02:28,580
‫Hatırlarsanız, iki dosya var. Bu Nginx için, değil mi?

33
00:02:28,580 --> 00:02:36,530
‫Docker dosyasına hızlıca bakarsak, oldukça basit olduğunu görürüz. Bu sadece bir çalışma dizini belirlemek ve ardından bir dizin

34
00:02:36,560 --> 00:02:39,050
‫dosyasını bu dizine kopyalamaktır.

35
00:02:39,050 --> 00:02:40,490
‫Burada hacim yok.

36
00:02:40,490 --> 00:02:45,290
‫Bir bağlama montajının çalışması için bir birim gerekmez, ancak bir birim kesinlikle orada olabilir.

37
00:02:45,530 --> 00:02:52,590
‫Ev sahibi her zaman kazanır, unuttun mu? Yani, bir docker konteyner çalıştırması yaptığımızda,

38
00:02:52,630 --> 00:02:56,330
‫bir -d... adını nginx koyalım.

39
00:02:56,390 --> 00:03:00,420
‫Daha önce olduğu gibi 8080 portunu verelim.

40
00:03:00,770 --> 00:03:06,470
‫O zaman bu sefer hacim vereceğiz. Ve mevcut çalışma dizinimin aslında konteynerdeki bu çalışma

41
00:03:06,650 --> 00:03:12,230
‫dizinine bağlanacağını söylemem gerekiyor. Dizin dosyam bu klasörde olduğu için konteynerde

42
00:03:12,230 --> 00:03:13,390
‫olmasını istiyorum,

43
00:03:13,430 --> 00:03:19,040
‫böylece onu burada düzenleyebilirim ve konteynerde canlı olarak görülür.

44
00:03:19,040 --> 00:03:20,320
‫Bu yüzden bir saniye içinde mantıklı olacak.

45
00:03:20,540 --> 00:03:24,280
‫İşte size küçük bir ipucu. Benim tüm yolumu bulmam ve her şeyi

46
00:03:24,290 --> 00:03:28,370
‫yazmam yerine, burada pwd'yi şu şekilde kullanabilirsiniz.

47
00:03:28,460 --> 00:03:36,210
‫Bu, 'çalışma dizinini yazdır ve bu komutu bu yolla değiştir' diyen bir kabuk kısayoludur.

48
00:03:36,210 --> 00:03:36,210
‫'

49
00:03:36,380 --> 00:03:43,460
‫Daha sonra Dockerfile'daki aynı çalışma dizinini kullanacağız ve ardından Nginx imajını

50
00:03:43,460 --> 00:03:45,360
‫belirleyeceğiz.

51
00:03:47,590 --> 00:03:52,930
‫Yapacağım şey, çok hızlı bir şekilde, aslında başka bir terminal penceresi açacağım, böylece aynı

52
00:03:52,930 --> 00:03:54,480
‫anda iki şey yapabileceğiz.

53
00:03:54,590 --> 00:03:56,010
‫Bunu yapmanıza gerçekten gerek yok.

54
00:03:56,050 --> 00:04:01,840
‫Temel olarak, ana bilgisayarımızdaki dosyayı düzenleyeceğiz ve sonra konteynerin içinde olacağım ve neler olduğunu

55
00:04:01,840 --> 00:04:02,780
‫göreceğim.

56
00:04:02,920 --> 00:04:04,730
‫Çalıştığından emin olmak için

57
00:04:04,780 --> 00:04:06,350
‫localhost'a gidelim.

58
00:04:06,700 --> 00:04:10,000
‫Tamam, bu varsayılan Nginx HTML dosyası değil.

59
00:04:10,030 --> 00:04:13,080
‫Ve normal Nginx imajını kullandık.

60
00:04:13,090 --> 00:04:16,580
‫Aslında bu dizindeki özel olanı kullanmadık.

61
00:04:16,690 --> 00:04:24,270
‫Sadece stok bir resim kullandık. Bu noktayı kanıtlamak için, aslında aynı, tam komutu tekrar

62
00:04:24,280 --> 00:04:37,390
‫yapabiliriz, ancak -v'yi çıkarabiliriz ve bunun yerine 8080 portunda çalıştıracağım. Ve ben buna nginx2 diyeceğim.

63
00:04:37,420 --> 00:04:47,930
‫Tarayıcıma gidip localhost 8080'e gidersem, bu varsayılan nginx dizinidir. html dosyası.

64
00:04:48,010 --> 00:04:52,130
‫Bu, bu dizinde yaşadığımız özel bir dizindir.

65
00:04:52,780 --> 00:04:56,380
‫Dolayısıyla, şimdiden doğru bir şekilde eşlendiğini görebiliyoruz.

66
00:04:56,560 --> 00:05:03,010
‫Burada başka bir sekme açarsam ve kapsayıcıda bir komut satırı alırsam.

67
00:05:08,800 --> 00:05:10,130
‫Sonra o dizine gidin.

68
00:05:17,710 --> 00:05:21,580
‫Tüm dizini eşlediğimiz için Docker dosyasını gerçekten görebildiğimizi fark edeceksiniz.

69
00:05:21,620 --> 00:05:27,460
‫Eğer sol tarafta yeni bir dosya oluşturduysak, yeni bir dosya oluşturmak için Linux touch komutunu

70
00:05:30,440 --> 00:05:37,010
‫kullanabilirim. Sonra sağ tarafta. Oops... Bunu unutup duruyorum. ls -al, ve bunu dosyanızda

71
00:05:37,010 --> 00:05:37,900
‫göreceksiniz.

72
00:05:37,970 --> 00:05:43,350
‫Umarım burada neler olup bittiğini, bu iki konumun da aynı yer olduğunu anlamışsınızdır.

73
00:05:43,370 --> 00:05:47,350
‫Ve eğer o testme dosyasına bir şey eklersem ve

74
00:05:57,430 --> 00:05:58,420
‫sonra...

75
00:06:01,620 --> 00:06:02,410
‫İşte oldu.

76
00:06:02,410 --> 00:06:06,670
‫Nginx'imiz değişiklikleri görebiliyor çünkü bu sadece konteynerdeki normal bir dosya

77
00:06:06,670 --> 00:06:08,720
‫yolu ve bu dosyalar ana bilgisayarda.

78
00:06:08,830 --> 00:06:13,210
‫Bunları kapsayıcıda silecek olsaydım, aynı dosya olduğu için ana bilgisayarda da silineceklerdi.

79
00:06:13,210 --> 00:06:19,090
‫Bu, genellikle bir geliştiricinin bu kadar karmaşık bir kuruluma sahip olan tüm geliştirme ortamları

80
00:06:19,090 --> 00:06:24,670
‫hakkında düşünmesini sağladığım zamandır. Belki de mükemmel ortamlarını kurmak için Vagrant veya

81
00:06:24,670 --> 00:06:30,880
‫başka bir manuel yöntem kullanıyorlar ve bunun bunu nasıl çok daha basit hale getirebileceğini görmeye başlayabilirler.

82
00:06:31,330 --> 00:06:35,920
‫Mac'imde karmaşık bir kurulum yapmam gerekmediği için sadece bir konteyner çalıştırdım.

83
00:06:35,920 --> 00:06:43,670
‫mount ile -v komutunu kullandım ve artık kodum ana bilgisayarımda düzenlenebiliyor.

84
00:06:43,840 --> 00:06:47,890
‫Ve gerçekten de kabın içine girmeme hiç gerek yok.

85
00:06:47,890 --> 00:06:52,570
‫Genellikle, kodlama yaparken herhangi bir hata olup olmadığını görmek için konteyneri çalıştırabilir ve günlüklerine

86
00:06:52,570 --> 00:06:53,260
‫bakabilirsiniz.

87
00:06:53,500 --> 00:06:58,750
‫Elbette bu Nginx ile yapılan basit bir örnektir. Daha sonra, yerel geliştirme ve konteynerler

88
00:06:58,750 --> 00:07:03,160
‫için farklı geliştirme ortamlarına ilişkin belirli örneklerimiz olacak.

