쉐도잉 연습: 100+ Docker Concepts you Need to Know - 영상으로 영어 말하기 배우기
레슨 만드는 중...
1
Welcome to Docker 101.
2
If your goal is to ship software in the real world, one of the most powerful concepts to understand is containerization.
3
When developing locally, it solves the age-old problem of it works on my machine, and when deploying in the cloud, it solves the age-old problem of this architecture doesn't scale.
4
Over the next few minutes, we'll unlock the power inside this container by learning 101 different concepts and terms related to computer science, the cloud, and of course Docker.
5
I'm guessing you know what a computer is, right?
6
box that has three important components inside.
7
A CPU for calculating things, random access memory for the applications you're using right now, and a disk to store things you might use later.
8
This is bare metal hardware, but in order to use it, we need an operating system.
9
Most importantly, the OS provides a kernel that sits on top of the bare metal, allowing software applications to run on it.
10
In the olden days, you would go to the store and buy software to physically install it on your machine.
11
But nowadays, most software is delivered via the internet through the magic of networking.
12
When you watch a YouTube video, your computer is called the client, but you and billions of other users are getting that data from remote computers called servers.
13
When an app starts reaching millions of people, weird things begin to happen.
14
The CPU becomes exhausted handling all the incoming requests, disk IO slows down, network bandwidth gets maxed out, and the database becomes too large to query effectively.
15
On top of that, you wrote some garbage code that's causing race conditions, memory leaks, and unhandled errors that will eventually grind your server to a halt.
16
The big question is how do we scale our infrastructure?
17
A server can scale up in two ways, vertically or horizontally.
18
To scale vertically, you take your one server and increase its RAM and CPU.
19
This can take you pretty far, but eventually you hit a ceiling.
20
The other option is to scale horizontally, where you distribute your code to multiple smaller servers, which are often broken down into microservices that can run and scale independently.
21
But distributed systems like this aren't very practical when talking about bare metal, because actual resource allocation varies.
22
One way engineers address this is with virtual machines, using tools like Hypervisor.
23
It can isolate and run multiple operating systems on a single machine.
24
That helps, but a VM's allocation of CPU and memory is still fixed.
25
And that's where Docker comes in, the sponsor of today's video.
26
Applications running on top of the Docker engine all share the same host operating system kernel
27
and use resources dynamically based on their needs.
28
Under the hood, Docker's running a daemon or persistent process that makes all this magic possible and gives us OS-level virtualization.
29
What's awesome is that any developer can easily harness this power by simply installing Docker Desktop.
30
It allows you to develop software without having to make massive changes to your local system.
31
But here's how Docker works in three easy steps.
32
First, you start with a Docker file.
33
This is like a blueprint that tells Docker how to configure the environment that runs your application.
34
The Docker file is then used to build an image, which contains an OS, your dependencies, and your code, like a template for running your application.
35
And we can upload this image to the cloud to places like Docker Hub and share it with the world.
36
But an image by itself doesn't do anything.
37
You need to run it as a container, which itself is an isolated package running your code that in theory could scale infinitely in the cloud.
38
Containers are stateless, which means when they shut down, all the data inside them is lost.
39
But that makes them portable, and they can run on every major cloud platform without vendor lock-in.
40
Pretty cool, but the best way to learn Docker is to actually run a container.
41
Let's do that right now by creating a Docker file.
42
A Docker file contains a collection of instructions, which by convention are in all caps.
43
From is usually the first instruction you'll see, which points to a base image to get started.
44
This will often be a Linux distro, and may be followed by a colon, which is an optional image tag, and in this case specifies the version of the OS.
45
Next, we have the working directory instruction, which creates a source directory and CDs into it, and that's where we'll put our source code.
46
All commands from here on out will be executed from this working directory.
47
Next, we can use the run instruction to use a Linux package manager to install our dependencies.
48
Run lets you run any command just like you would from the command line.
49
Currently we're running as the root user, but for better security we could also create a non-root user with the user instruction.
50
Now we can use copy to copy the code on our local machine over to the image.
51
You're halfway there, let's take a brief intermission.
52
Now to run this code we have an API key, which we can set as an environment variable with the env instruction.
53
We're building a web server that people can connect to, which requires a port for external traffic.
54
Use the expose instruction to make that port accessible.
55
Finally, that brings us to the command instruction, which is the command you want to run when starting up a container.
56
In this case, it will run our web server.
57
There can only be one command per container, although you might also add an entry point, allowing you to pass arguments to the command when you run it.
58
That's everything we need for the Dockerfile.
59
But as an added touch, we could also use label to add some extra metadata, or we could run a health check to make sure it's running properly,
60
or if the container needs to store data that's going to be used later or be used by multiple containers, we could mount a volume to it with a persistent disk.
61
Okay, we have a Dockerfile, so now what?
62
When you install Docker Desktop, that also installed the Docker CLI, which you can run from the terminal.
63
Run Docker help to see all the possible commands, but the one we need right now is Docker build, which will turn this Docker file into an image.
64
When you run the command, it's a good idea to use the T flag to tag it with a recognizable name.
65
Notice how it builds the image in layers.
66
Every layer is identified by a SHA-256 hash, which means if you modify your Docker file, each layer will be cached, so it only has to rebuild what has actually changed,
67
and that makes your workflow as a developer far more efficient.
68
In addition, it's important to point out that sometimes you don't want certain files to end up in a Docker image, in which case you can add them to the Docker ignore file to exclude them from the actual files
69
that get copied there.
70
Now open Docker Desktop and view the image there.
71
Not only does it give us a detailed breakdown, but thanks to Docker Scout, we're able to proactively identify any security vulnerabilities for each layer of the image.
72
It works by extracting the software bill of material from the image and compares it to a bunch of security advisory databases.
73
When there's a match, it's given a severity rating, so you can prioritize your security efforts.
74
But now the time has finally come to run a container.
75
We can accomplish that by simply clicking on the run button.
76
Under the hood, it executes the docker run command, and we can now access our server on localhost.
77
In addition, we can see the running container here in docker desktop, which is the equivalent to the docker psst command,
78
which you can run from the terminal to get a breakdown of all the running and stop containers on your machine.
79
If we click on it though, we can inspect the logs from this container, or view the file system, and we can even execute commands directly inside the running container.
80
Now when it comes time to shut it down, we can use Docker stop to stop it gracefully, or Docker kill to forcefully stop it.
81
You can still see the shutdown container here in the UI, or use remove to get rid of it.
82
But now you might want to run your container in the cloud.
83
Docker push will upload your image to a remote registry, where it can then run on a cloud like AWS with Elastic Container Service,
84
or it can be launched on serverless platforms like Google Cloud Run.
85
Conversely, you may want to use someone else's Docker image, which can be downloaded from the cloud with Docker Pool.
86
And now you can run any developer's code without having to make any changes to your local environment or machine.
87
Congratulations, you're now a bona fide and certified Docker expert.
88
I hereby grant you permission to print out this certificate and bring it to your next job interview.
89
But Docker itself is only the beginning.
90
There's a good chance your application has more than one service, in which case you'll want to know about Docker Compose, a tool for managing multi-container applications.
91
It allows you to define multiple applications and their Docker images in a single YAML file, like a frontend, a backend, and a database.
92
The Docker Compose up command will spin up all the containers simultaneously, while the down command will stop them.
93
That works on an individual server, but once you reach massive scale, you'll likely need an orchestration tool like Kubernetes to run and manage containers all over the world.
94
It works like this.
95
You have a control plane that exposes an API that can manage the cluster.
96
Now, the cluster has multiple nodes or machines, each one containing a kubelet and multiple pods.
97
A pod is the minimum deployable unit in Kubernetes, which itself has one or more containers inside of it.
98
What makes Kubernetes so effective is that you can describe the desired state of the system, and it will automatically scale up or scale down,
99
while also providing fault tolerance to automatically heal if one of your servers goes down.
100
It gets pretty complicated, but the good news is that you probably don't need Kubernetes.
101
It was developed at Google based on its Borg system and is really only necessary for highly complex high-traffic systems.
102
If that sounds like you though, you can also use extensions on Docker Desktop to debug your pods.
103
And with that, we've looked at 100 concepts related to containerization.
104
Big shout out to Docker for making this video possible.
105
Thanks for watching, and I will see you in the next one.
📺 같은 채널
✨ 추천 영상
이 레슨의 어휘와 말하기 포인트
이 영상에는 섀도잉할 문장 105개와 단어 1837개가 있습니다. 말하는 구간의 길이는 8:27입니다. 화자는 분당 약 217단어로 빠르게 말하므로 연음과 약하게 발음되는 소리가 많습니다. 영어에서 가장 많이 쓰이는 3,000단어에 속하는 단어가 79%뿐이라 어휘가 어려운 편입니다.
이 영상의 핵심 어휘
영상에 나오는 익혀 둘 만한 단어 15개를 발음, 뜻과 함께 정리했습니다.
| 단어 | 발음 | 뜻 |
|---|---|---|
| container 명사 | /kənˈteɪ.nəɹ/ | 그릇, 용기 |
| server 명사 | /ˈsɝvɚ/ | 서버, 봉사기 |
| cloud 명사 | /ˈklaʊ̯d/ | 구름 |
| desktop 명사 | /ˈdɛsktɒp/ | 탁상 |
| layer 명사 | /ˈleɪ̯ɚ/ | 층 |
| install 동사 | /ɪnˈstɔl/ | 설치하다, 깔다 |
| database 명사 | /ˈdeɪtəˌbeɪs/ | 데이터베이스 |
| disk 명사 | /dɪsk/ | 디스크, 원반 |
| execute 동사 | /ˈɛksɪˌkjuːt/ | 처형하다 |
| directory 명사 | /dɪˈɹɛktəɹi/ | 디렉토리, 폴더 |
| package 명사 | /ˈpæk.ɪd͡ʒ/ | 짐, 꾸러미 |
| solve 동사 | /sɒlv/ | 해결하다 |
| remote 형용사 | /ɹəˈməʊt̞/ | 원격, 먼 |
| terminal 명사 | /ˈtɚmɪnəl/ | 터미널, 공항 터미널 |
| breakdown 명사 | /ˈbɹeɪkˌdaʊn/ | 고장 |
영상에 나오는 구동사
| 단어 | 뜻 |
|---|---|
| go down 동사 | 내려가다 |
| point out 동사 | 가리키다 |
주의할 발음
화자는 we're, you'll, you're 같은 축약형과 약화된 형태를 18번 사용합니다. 들리는 대로 짧게 발음하세요.
- “sh”와 “zh” 소리: instruction /ɪnˈstɹʌkʃən/, allocation /ˌæl.əˈkeɪ.ʃən/, extension /ɪkˈstɛnʃən/, efficient /ɪˈfɪʃənt/, congratulations /kənˌɡɹæt͡ʃəˈleɪʃ(ə)nz/
- 긴 단어 — 강세 위치에 주의: directory /dɪˈɹɛktəɹi/, developer /dɪˈvɛləpɚ/, allocation /ˌæl.əˈkeɪ.ʃən/, dependency /dɪˈpɛndənsi/, complicated /ˈkɑm.plɪˌkeɪ.tɪd/
이 영상으로 연습하는 방법
- 먼저 말하지 않고 영상을 끝까지 듣고 모르는 단어를 적어 둡니다.
- 0.75배속으로 한 문장씩 섀도잉을 시작하고, 익숙해지면 보통 속도로 돌아갑니다.
- 자신의 목소리를 녹음해 원본과 비교하고, container, server, cloud 같은 단어에 특히 주의합니다.
이 영상의 문법
화자가 가장 많이 쓰는 문형을 영상 속 실제 표현과 함께 정리했습니다.
| 문형 | 영상 속 표현 |
|---|---|
| 수동태 be + 과거분사 — 누가 하는지보다 무슨 일이 일어나는지에 초점 | is delivered · is called · are often broken |
| 관계절 who / which + 절 — 사람이나 사물에 대한 추가 정보 | servers, which are · stateless, which means · colon, which is |
| 현재완료 have/has + 과거분사 — 과거의 일이 지금도 관련이 있을 때 | has actually changed · has finally come · we've looked |
쉐도잉이란? 영어 실력을 빠르게 키우는 과학적 방법
쉐도잉(Shadowing)은 원래 전문 통역사 훈련을 위해 개발된 언어 학습 기법으로, 다언어 학자인 Dr. Alexander Arguelles에 의해 대중화된 방법입니다. 핵심 원리는 간단하지만 매우 강력합니다: 원어민의 영어를 들으면서 1~2초의 짧은 지연으로 즉시 소리 내어 따라 말하는 것——마치 '그림자(shadow)'처럼 화자를 따라가는 것입니다. 문법 공부나 수동적인 청취와 달리, 쉐도잉은 뇌와 입 근육이 동시에 실시간으로 영어를 처리하고 재현하도록 훈련합니다. 연구에 따르면 이 방법은 발음 정확도, 억양, 리듬, 연음, 청취력, 말하기 유창성을 크게 향상시킵니다. IELTS 스피킹 준비와 자연스러운 영어 소통을 원하는 분들에게 특히 효과적입니다.






























