‫Więc najpierw mieliśmy Charlesa, który opublikował swój obszar plików Dockera,
‫i
‫pozwól mi wyciągnąć zielony ekran, abyśmy mogli spojrzeć na
‫ten plik Dockera.
‫I oczywiście rzeczywistość jest taka, że po przejściu do plików w świecie rzeczywistym wszystko staje się bałagan.
‫Dobrze.
‫Wszyscy uczymy się na kursach takich jak te, które mam i uczymy się na podstawie artykułów na blogu i dokumentacji, a potem, gdy
‫przejdziemy do prawdziwego świata, zawsze wydaje się to trudniejsze.
‫Dlatego zawsze staram się dodawać więcej tej złożoności do kursów, ale jest dużo pracy, aby uzyskać to
‫na kursach, ponieważ musisz to bardzo kontekst.
‫Bardzo zależy od środowiska, konfiguracji i konkretnej aplikacji.
‫Więc pomyślałem zeszłej nocy Hej, dlaczego nie porozmawiamy o tym jutro w serialu.
‫Więc jeśli naprawdę to lubisz, podnieś kciuki do góry.
‫Powiedz mi na czacie lub w komentarzach, że chcesz ich więcej, a my sprawimy,
‫że będzie to normalna rzecz, faktycznie przejrzymy więcej plików Dockera, skomponujemy pliki i wyciągniemy z nich kilka dobrych klejnotów.
‫W porządku.
‫Najpierw Charles i wygląda na to, że pochodzi ze swojego konta, ma obraz P HP Apache.
‫Na podstawie tego imienia zakładam, że właśnie o to chodzi.
‫Ma datę i wie, że ma tam nazwę i datę.
‫Jest to więc dość powszechne, gdy zaczynasz dostosowywać się do własnych obrazów na podstawie zdjęć, które możesz
‫wykonywać, np. Aktualizować je, datować lub używać w nich pomysłów na zatwierdzanie.
‫Jest to sposób na zagwarantowanie, że używasz dokładnie tego samego obrazu.
‫Ponownie tutaj nie używasz tylko najnowszej wersji w prawdziwej konfiguracji produkcyjnej, której zawsze możesz używać do
‫zabawy i testowania.
‫Ale kiedy przechodzisz do prawdziwych rzeczy, zawsze będziesz chciał używać tych prawdziwych wersji.
‫Cóż, to obraz Azure HP mówi Charles.
‫Ok fajnie.
‫A potem ma tutaj interesującą konfigurację, której nie widziałem wcześniej i myślę, że wiem,
‫dlaczego to robisz.
‫Więc w tym wierszu uruchomisz aplikację, aby uzyskać aktualizację, a następnie mówisz, że jeśli nie, dajesz OR w
‫bash, co oznacza, że jeśli to się nie powiedzie, zrób to.
‫A więc to powtarzacie.
‫Zgaduję, że może to być albo połączenie z siecią, albo miejsce, w którym potencjalnie masz problem z
‫aktualizacjami, lub może masz dziwactwa w przeszłości, gdzie losowo się nie udaje, a
‫jeśli po prostu zrobiłam to po raz drugi.
‫Tak sądzę, że tam robisz.
‫I to jest skuteczne rozwiązanie tego problemu, jeśli właśnie po to właśnie jest.
‫W przeciwnym razie zwykle nie widzę tego rodzaju konfiguracji, to normalnie nie jest to, co bym tam zobaczył.
‫W porządku.
‫Następnie eksportujesz i jest to tylko niewielka zmiana metadanych.
‫Więc to nie zajmie dużo. Spójrz na to, co Charles
‫mówi, tak, mówi, że to równie szczęśliwy obraz HP.
‫Rozmawiał z pomocnikiem platformy Azure, który naprawia błąd.
‫Tak bardzo fajnie, zmienię to, zobaczmy,
‫zróbmy to,
‫zmieniając tutaj czcionki, żeby wyglądało to trochę łatwiej.
‫Wygląda lepiej.
‫Tak.
‫W porządku.
‫Oto interesująca rzecz.
‫Więc pobierasz, więc pobierasz niektóre pliki i instalujesz pakiet, który jest normalny.
‫Robisz też kilka aplikacji instalujących się tutaj.
‫Więc jeśli nie jest to coś, co testujesz i po prostu próbujesz dowiedzieć się, jak
‫działa ten przepływ pracy, istnieje wiele możliwości optymalizacji, szczególnie jeśli chodzi o rozmiar.
‫Masz również sytuację, w której możemy wpaść w kłopoty.
‫Zauważ tutaj, że mamy osobną linię uruchomieniową, która robi aplikację, aby uzyskać aktualizację.
‫Więc nie masz tej linii tutaj, gdzie robisz całą instalację.
‫Więc złamałeś wszystkie te kroki.
‫Teraz, jeśli zaczniesz oglądać oficjalne zdjęcia, zauważysz, że nigdy tego nie robią.
‫Zawsze umieszczają to wszystko w jednym ogromnym szeregu i jest kilka powodów.
‫Najważniejszym powodem jest tutaj krach gotówkowy.
‫Kiedy więc pomyślisz o budowaniu obrazu, kryje się za tym gotówka.
‫Teraz, jeśli używasz czegoś takiego jak Jenkins lub moduł uruchamiający CCD i wyłączyłeś buforowanie,
‫w którym zawsze będzie budować za każdym razem od zera bez buforowania, może to nie być taki problem, ale na pewno
‫będzie to problem, jeśli budujesz lokalnie lub więcej niż jeden
‫raz na dowolnym systemie.
‫I to właśnie stanie się z linią startową.
‫Powiedzmy, że tam jest.
‫DOBRZE.
‫I nigdy się nie zmienia.
‫Dobrze.
‫Więc przy pierwszym tworzeniu tego obrazu wszystko jest w porządku.
‫Załóżmy, że budujesz trzy dni później.
‫Nie będzie buforować tej linii, ponieważ ta linia nie uległa zmianie, pamiętaj, a
‫na standardowej komendzie kompilacji dokera pomijanie pamięci podręcznej następuje po zmianie linii.
‫A kiedy zmienisz tę linię, wszystko w tej linii zostanie ponownie uruchomione, a każda linia po niej.
‫I dzieje się tutaj, jeśli masz tutaj tę linię uruchamiania i nigdy się nie zmienia, ale dodajesz,
‫powiedzmy inny pakiet tutaj w linii uruchamiania, a może zmienisz wersje i na sztywno kodujesz swoje
‫wersje, które powinieneś również robić powinien na stałe kodować wersje wszystkich tych narzędzi i
‫może nie rozpakowywać, rozpakowywać i zwijać.
‫Ale jeśli Twój zespół ds. Bezpieczeństwa jest surowy, będą oczekiwać, że będziesz mieć niezawodne wersje i to kolejna rzecz,
‫którą chciałbyś tutaj zrobić.
‫Wróćmy jednak do tego punktu.
‫Więc jeśli masz zamiar wykonać te instalacje, zmienisz narzędzie i dodajesz je tutaj.
‫Pomyśl o tym i pobierz aktualizację, która musiała pobrać aktualizację, bufor wszystkich metadanych dotyczących wszystkich tych
‫pakietów, a następnie zainstalujesz te pakiety później, a jeśli druga linia tutaj
‫zostanie zablokowana przez zmianę, uruchomi się ponownie.
‫Ale będzie działać na podstawie starej pamięci podręcznej aplikacji, aby uzyskać aktualizację.
‫Z czasem zaczniesz doświadczać problemów, ponieważ twoje pakiety zawsze będą instalować te
‫stare wersje. O wiele lepszym sposobem jest zrobienie całej aplikacji, aby wszystko było dobrze.
‫I to niekoniecznie wiąże się z pobraniem tego pakietu tutaj.
‫To jest niestandardowy pakiet.
‫Porozmawiamy o tym za chwilę.
‫Ale jeśli chodzi o te linie tutaj, ta linia nie będzie miała wpływu na
‫rozmiar, ponieważ ta linia musi przebiegać w tej samej linii co ta lub inaczej nie będzie działać.
‫To wszystko może nie jest prawdą.
‫Jeśli masz inny Ok, więc nie robisz wielostopniowego.
‫Jednym ze sposobów na uniknięcie problemu z rozmiarem jest to, czy wykonujesz wielostanowe, ale nie robisz tego, co jest w stanie i to
‫jest w porządku.
‫Nie musisz robić
‫wielostopniowego, więc zobaczmy, więc to,
‫co się tutaj wydarzy, to to, że poleciłbyś zabranie ich tutaj tutaj, biorąc to
‫wszystko tutaj, podbijając wszystko do tej linii.
‫Wziąłbym tę linię eksportu i umieściłbym ją powyżej, więc po prostu umieściłem ją tutaj, aby została
‫ustawiona.
‫I nigdy nie musi się zmieniać.
‫I nie musisz się tym martwić w środku tego, co robisz, aby wszystko dobrze się ułożyło.
‫Ogólnie rzecz biorąc, dobrze, że masz wszystko na wyciągnięcie ręki, ponieważ chcesz, aby te zależności, które zwykle
‫zajmują dużo czasu, by były wysoko, abyś nie musiał ich
‫ponownie uruchamiać często.
‫Ale jestem tym, co zalecę, abyś
‫wziął wszystkie te rzeczy tutaj i umieścił je tutaj, teraz możesz to zrobić, ponieważ jest to ręczny pakiet do pobrania i instalacji.
‫Kiedy to zrobisz,
‫możesz zrobić kilka rzeczy.
‫Jednym z nich jest to.
‫Ta linia tutaj będzie warstwą i ta warstwa zawsze będzie zawierać plik db, nawet jeśli go nie
‫potrzebujesz.
‫Więc kiedy wyczyścisz później, nie wyczyścisz poprzednich warstw.
‫Jednym z problemów jest to, że jest to plik pobrany do warstwy, a następnie przechodzisz do
‫następnej linii, która jest następną komendą Docker. Powiem, że następna komenda Docker będzie nową
‫warstwą.
‫Pomyśl o tym jako o osobnej opcji, gdy zatrzymasz linię lub polecenie dokera.
‫Nie możesz zmienić tego, że nie możesz cofnąć się w czasie i to zmienić.
‫Tak więc następny wiersz lub plik poleceń i dokera po prostu doda do niego elementy.
‫Teraz, jeśli usunie pliki, po prostu usunie je na tej warstwie.
‫Zasadniczo umieścił kilka metadanych, które mówią, hej, ten plik nie powinien już istnieć lub wyglądać, jakby istniał, ale te
‫pliki nadal będą istnieć, a te warstwy tylko do odczytu, ponieważ każda
‫warstwa nad nim jest teraz tylko do odczytu i w ten sposób warstwy te gwarantują są identyczne z oczekiwanymi.
‫Żadna warstwa nie może cofnąć się w czasie.
‫Więc to, co musisz zrobić, to sprawdzić niektóre z domyślnych obrazów dokera, a więc zróbmy to, spójrzmy na jeden z moich, ponieważ będzie
‫trochę więcej, może
‫być trochę łatwiejszy do zrozumienia.
‫Więc nie jestem
‫pewien.
‫DOBRZE.
‫Więc plik Dockera tak, jest AP AP, ale zauważysz tutaj, jak to wszystko jest w jednym wierszu, co
‫jest trochę złym przykładem, ale zróbmy hub i spójrzmy na Ghost.
‫Spójrz na ten plik Debian Docker.
‫W porządku, zaczynamy.
‫Zauważysz więc, że w tej sytuacji pobiera pewne rzeczy, które sobie z tym radzą, a następnie
‫pozbywa się tego wszystkiego w jednym wierszu.
‫W ten sposób te pliki nigdy się nie trzymają.
‫Po uszczelnieniu i oznaczeniu tej warstwy tylko do odczytu.
‫I to jest dość kluczem do utrzymania małych zdjęć.
‫Założę się, że kiedy sprawisz, że te rzeczy będą wydajne i połączysz je ze sobą, zaoszczędzisz
‫setki megapikseli i rozmiar obrazu.
‫W porządku, a drugą rzeczą tutaj jest to, że dodałbym to również do jednej linii i kolejną rzeczą,
‫którą bym zrobił, jest to, że może nie potrzebujesz, możesz zrobić reklamę, reklama automatycznie pobierze
‫plik z Internet.
‫A jeśli jesteś bardzo ciekawy różnicy w kopiowaniu i reklamie w dzisiejszych czasach, naszym standardem jest
‫kopiowanie w rzeczywistości tylko do kopiowania plików z repozytorium, które masz rację.
‫Więc po prostu kopiuj pliki i reklama robi to samo, ale zwykle chcemy używać reklamy tylko wtedy, gdy pobieramy
‫coś z Internetu lub cokolwiek, co kopiujemy i chcemy, aby rozpakowało się lub plik tar ONZ, i to naprawdę będzie powód do
‫korzystania z reklamy.
‫Ale miłą zaletą korzystania z reklamy jest to, że nie musiałbyś robić, żebyś mógł w zasadzie
‫użyć wewnętrznych lekarzy, pójdziemy pobrać ten plik i pobrać go negatywnie, ale to, że kiedy zrobisz tę linię, a
‫potem przejdziesz do następnej linii.
‫Ten pakiet będzie nadal istniał.
‫Więc nawet jeśli reklamy są naprawdę fajne w twoim przypadku, ponieważ pobierasz pakiet, który jesteś
‫dobry, zainstalują się, a następnie nie potrzebujesz już tego pakietu.
‫Może po prostu umieściłbym wszystkie trzy z tych linii w jednej linii w ten sposób na samym końcu, można
‫faktycznie usunąć tę kropkę D. B. zarchiwizuj i zaoszczędź dodatkowe miejsce w ostatnim wydarzeniu.
‫Zrobiłbyś to wszystko za jednym razem.
‫W porządku.
‫To pomaga.
‫Wygląda na to, że kopiujesz w niektórych innych plikach świetnie, że używasz kopiowania, a nie dodawania.
‫Robisz też kilku twórców, kopiujesz i certyfikaty.
‫Właśnie tak bym to zrobił.
‫Możesz zrobić to bardziej zoptymalizowanym, możesz umieścić je wszystkie w komendzie pojedynczego uruchomienia,
‫zwykle dlatego, że zasadniczo jest to trochę szybsze w budowie, da ci to może sekundę szybciej w
‫rachunku, ponieważ każda z tych linii musi się zatrzymać kontener lub utwórz nowy
‫kontener zamontuj resztę obrazu i uruchom to polecenie, a następnie zapisz to w nowym obrazie kontenera,
‫a następnie uruchom nowy kontener.
‫Dobrze.
‫Musi więc wykonać o wiele więcej pracy niż uruchomienie trzech szybkich poleceń.
‫Więc mogę mieć je w jednym.
‫Nie ma żadnych bezpiecznych oszczędności miejsca ani nic, ale to tylko kwestia
‫trzech poleceń, które naprawdę zamieniłyby się w jedną długą komendę. Ich i tak, w porządku, tak.
‫Mamy bramy.
‫Nawiasem mówiąc, prawdopodobnie zrobiłbym to samo, aby zrobić to dla wydajności.
‫Więc tutaj kopiujesz w dwóch różnych liniach kopiowania, możesz utworzyć tę jedną linię.
‫Można powiedzieć kopię, a następnie ścieżkę do CRT, a następnie ścieżkę do tego klucza.
‫Kay Kay dlaczego i masz te dwa pliki, a następnie umieść ścieżkę do katalogu SSL.
‫Tak długo, jak oboje idą do tego samego katalogu, możesz mieć wiele plików w
‫jednym wierszu kopii, co pomoże ci to trochę ułatwić.
‫Im mniej linii, tym lepiej, o ile nie są zbyt skomplikowane.
‫Tak.
‫Masz kilka standardowych rzeczy Apache w konfiguracjach, które możesz również.
‫Nie wiem ile.
‫Tak.
‫Są to tak naprawdę są dobre.
‫Myślę,
‫że są dobre, zrób to trochę kopiując pliki konfiguracyjne w niektórych z nich, możesz również wziąć pod uwagę, że są
‫to standardowe pliki konfiguracyjne, ale jeśli musisz je zastąpić i używasz orkiestratora, czy
‫używasz kubańskiego czy roju, zdaj sobie sprawę, że możesz używać tej konfiguracji lub w społecznościach zwanych mapą konfiguracji.
‫Możesz użyć funkcji config i roju, aby zamontować te pliki w czasie wykonywania, dzięki czemu nie będziesz
‫mocno kodować żadnych konfiguracji.
‫Idealnie, że nie kodujesz na sztywno SSL jest w twoim obrazie, tak naprawdę, jeśli masz niestandardowy SSL, ponieważ
‫chcesz przechowywać go w swoim orkiestratorze lub w Dockerze i montować je, a także po uruchomieniu, ponieważ idealnie
‫nie powinno być niczego tajnego na obrazie, kiedy go zapiszesz.
‫Więc mam nadzieję, że będziesz robił to samo, ponieważ możesz połączyć te dwa w jedną linię, możesz połączyć
‫niektóre z nich w jedną linię, którą prawdopodobnie wiesz, jeśli to wszystkie x małe pliki w
‫tym katalogu, które możesz skopiować katalog gwiazdka kropka X ilość, a następnie możesz skopiować
‫wszystkie cztery tam, to są plusy i minusy, ponieważ wtedy, gdy pojawi
‫się dodatkowy plik X excel, może przypadkowo zostać skopiowany, ale zależy to tylko od tego, jak szczegółowy chcesz być
‫i jak chcesz literalnej linii dla linii, a nie ciemniejszych plików małych i prostych.
‫W porządku.
‫A potem masz kolejną kopię, uruchom swoją zmianę w katalogu roboczym, a następnie masz
‫punkt wejścia.
‫Teraz zazwyczaj nie masz CRM D.
‫Domyślam się, że używasz CRM D z tego obrazu głównego i to jest w porządku.
‫Nie ma w tym nic złego.
‫Jednym z wyzwań, z którymi się z tym zmagam, jest to, że ludzie, którzy używają moich zdjęć, jeśli mam zespół ludzi,
‫którzy nie będą wiedzieć, jak iść, zobaczą je D.
‫Więc zwykle powtarzam CMT, nawet jeśli nie jest to konieczne tutaj, na dole, ponieważ dostaną to i coś w rodzaju repozytorium i
‫będą na to patrzeć, a jeśli nie będą super zręczni w Docker, to nie zdaję
‫sobie sprawy. Muszę znaleźć ten plik Dockera dla.
‫Z tego pochodzi lub korzysta z historii i wróć i spójrz na historię i czas, aby znaleźć ten
‫CMT.
‫Więc możesz nawet wrzucić to w komentarz, aby pomóc ludziom, którzy mogą patrzą na ten plik Docker, ale
‫zwykle stwierdzam, że ponieważ punkt wejścia w CMT jest tak ważny dla tego, co robi ten
‫obraz Dockera, że mam tendencję do dodaj te n, nawet jeśli może to być powtarzalne w stosunku do poprzedniego obrazu.
‫Znowu wszystko to tylko metadane, więc tak naprawdę nie dodaje żadnego czasu rzeczywistego ani wzdęć do twojej kompilacji, zamiast innych
‫zmian plików i poleceń uruchamiania, które wykonujesz.
‫Ale poza tym wygląda to na świetną, dobrej jakości produkcyjny plik Docker, nad którym
‫spędziłeś dużo czasu, ale myślę, że zdecydowanie ogólnie możesz połączyć wiele z nich i
‫uzyskać rzeczy, aby zaoszczędzić dużo miejsca na obrazie i dużo wzdęcia, a także uniknąć problemu aktualizacji starej aktualizacji, która jest
‫w zasadzie starą aplikacją, aby uzyskać gotówkę podczas próby zainstalowania nowych rzeczy.
‫Polecam wersję tych i możesz w zasadzie w tej komendzie instalacyjnej możesz określić wersję każdego
‫z nich, może niektóre z tych narzędzi nie ma tak naprawdę znaczenia, ale kiedy zaczynasz
‫schodzić do bibliotek, których potrzebujesz.
‫W przypadku Apache dla faktycznej aplikacji są to po prostu dodatkowe narzędzia do zarządzania nią, a nie rzeczy, których
‫można by użyć w uruchomionej aplikacji produkcyjnej.
‫Dobrze.
‫Ale ten żywy Apache tutaj na pewno bym wersji, że zostałem ugryziony przez ten
‫błąd i HP, ponieważ mongo D. B. sterownik i HP zmieniły wersje na moim obrazie i
‫zepsuło się, że miał błąd i zepsuł moje aplikacje produkcyjne, ponieważ nie przypiąłem go do pliku dokera i po prostu
‫przeszedłem do produkcji, tylko jednego dnia odbudowałem obraz działało dobrze na mojej maszynie, ponieważ moja maszyna miała inną wersję,
‫ponieważ nie ma, to znaczy, że nie ma wersji, w zasadzie dostajesz
‫cokolwiek najnowsza wersja po zbudowaniu obrazu, więc jest to rodzaj losowej nadziei, że otrzymasz dobrą wersję to
‫działa.
‫Zdecydowanie dostajesz pinezkę, którą ja osobiście przypinam je wszystkie i po prostu aktualizuję raz w miesiącu, czy
‫coś innego, czego wymaga Twój zespół bezpieczeństwa.
‫Ale to świetny plik Docker.
‫Dziękuję bardzo.
‫Oczywiście zawsze jest miejsce na poprawę i cieszę się, że przyszedłeś z pomocą.