1 00:00:06,700 --> 00:00:09,080 - [Instructor] Let's go over container technology. 2 00:00:09,080 --> 00:00:10,020 And a lot of people think 3 00:00:10,020 --> 00:00:13,050 that containers are just Docker containers. 4 00:00:13,050 --> 00:00:15,200 There's a whole bunch of different technologies 5 00:00:15,200 --> 00:00:19,320 that can provide containerized environments. 6 00:00:19,320 --> 00:00:21,061 And basically what a container is, 7 00:00:21,061 --> 00:00:23,110 is a standard unit of software 8 00:00:23,110 --> 00:00:26,437 that package up code and all the dependencies, 9 00:00:26,437 --> 00:00:29,280 so the applications actually can run very quickly, 10 00:00:29,280 --> 00:00:32,290 reliable, and in an isolated way. 11 00:00:32,290 --> 00:00:33,123 And at the end of the day, 12 00:00:33,123 --> 00:00:34,860 what it is, is a zip file, right? 13 00:00:34,860 --> 00:00:37,510 It's a tar file, it's a compressed file 14 00:00:37,510 --> 00:00:40,830 that includes those components. 15 00:00:40,830 --> 00:00:44,860 Now yes, one of the most popular container technologies 16 00:00:44,860 --> 00:00:46,960 out there is Docker, right? 17 00:00:46,960 --> 00:00:48,610 And we're gonna go over that in a second. 18 00:00:48,610 --> 00:00:51,287 But if you compare virtual machines, 19 00:00:51,287 --> 00:00:54,330 the traditional virtual machines and containers, 20 00:00:54,330 --> 00:00:57,200 you see that in order for you to run virtual machines, 21 00:00:57,200 --> 00:00:58,690 you need a hypervisor. 22 00:00:58,690 --> 00:01:00,929 Either a Type 1 hypervisor 23 00:01:00,929 --> 00:01:02,889 that is in bare-metal, 24 00:01:02,889 --> 00:01:05,180 or a Type 2 hypervisor 25 00:01:05,180 --> 00:01:08,940 that basically runs on top of another operating system. 26 00:01:08,940 --> 00:01:11,320 Right, so in this diagram, 27 00:01:11,320 --> 00:01:14,750 you see a few things that where virtual machines 28 00:01:14,750 --> 00:01:18,167 of course can run different types of applications, 29 00:01:18,167 --> 00:01:22,020 including the full guest operating system. 30 00:01:22,020 --> 00:01:26,700 So it can be Windows, it can be Linux, and so on. 31 00:01:26,700 --> 00:01:29,360 Then you have binaries and libraries on top of it. 32 00:01:29,360 --> 00:01:32,880 And of course, applications running on top of each VM. 33 00:01:32,880 --> 00:01:36,099 So each of the circles that I'm highlighting here 34 00:01:36,099 --> 00:01:39,290 are basically separate VMs. 35 00:01:39,290 --> 00:01:41,450 Now, if you look to the right, 36 00:01:41,450 --> 00:01:43,080 basically in containers, 37 00:01:43,080 --> 00:01:45,240 you do not need a hypervisor. 38 00:01:45,240 --> 00:01:48,755 Basically run an operating system like Linux, 39 00:01:48,755 --> 00:01:51,700 and then a container engine. 40 00:01:51,700 --> 00:01:55,640 That container engine can be something like LXC, 41 00:01:55,640 --> 00:01:58,119 or it can be a Docker. 42 00:01:58,119 --> 00:02:00,990 It can be something like Rocket, 43 00:02:00,990 --> 00:02:02,710 which is another technology. 44 00:02:02,710 --> 00:02:05,460 And basically you run your applications and your libraries 45 00:02:05,460 --> 00:02:08,160 and your dependencies and everything 46 00:02:08,160 --> 00:02:10,690 within that environment, 47 00:02:10,690 --> 00:02:13,030 in an isolated environment. 48 00:02:13,030 --> 00:02:18,030 Now within containers basically they have name spaces 49 00:02:18,540 --> 00:02:22,430 and that concept of name spaces is what basically 50 00:02:22,430 --> 00:02:26,270 allows you to do that isolated environment. 51 00:02:26,270 --> 00:02:30,800 Now, there is a very good resource within docker.com 52 00:02:30,800 --> 00:02:32,960 that I'm gonna share with you in a second. 53 00:02:32,960 --> 00:02:34,300 Right here. 54 00:02:34,300 --> 00:02:37,110 And where it goes over what is a container 55 00:02:37,110 --> 00:02:39,020 and the different container standards 56 00:02:39,020 --> 00:02:42,050 and industry specifications, 57 00:02:42,050 --> 00:02:46,260 especially around the Cloud Native Computing Foundation 58 00:02:46,260 --> 00:02:51,240 or the CNCF on where there's an environment 59 00:02:51,240 --> 00:02:55,910 called the Open Container Initiative, or the open IOC. 60 00:02:55,910 --> 00:02:57,470 And if you want to learn more 61 00:02:57,470 --> 00:03:01,530 about the open IOC and specifically about Container D, 62 00:03:01,530 --> 00:03:03,770 which is the underlying technology 63 00:03:03,770 --> 00:03:05,330 that is a product of that effort, 64 00:03:05,330 --> 00:03:06,910 you can actually click on this link 65 00:03:06,910 --> 00:03:10,590 and go to containerd.io. 66 00:03:10,590 --> 00:03:11,959 And as a matter of fact, 67 00:03:11,959 --> 00:03:13,811 there's a lot of extensive documentation 68 00:03:13,811 --> 00:03:16,490 about containers and so on. 69 00:03:16,490 --> 00:03:19,760 Now, one of the best ways to learn 70 00:03:19,760 --> 00:03:21,460 about container technologies of course, 71 00:03:21,460 --> 00:03:22,870 is by using it. 72 00:03:22,870 --> 00:03:24,853 And within the websploit environment 73 00:03:24,853 --> 00:03:28,000 that I have been using throughout the class, 74 00:03:28,000 --> 00:03:31,420 you have intention of vulnerable applications 75 00:03:31,420 --> 00:03:34,170 running in Docker containers, right? 76 00:03:34,170 --> 00:03:36,030 So the Docker engine is actually installed 77 00:03:36,030 --> 00:03:37,830 and you can do a Docker PS, 78 00:03:37,830 --> 00:03:39,300 and see all the different containers 79 00:03:39,300 --> 00:03:40,750 that actually are running. 80 00:03:40,750 --> 00:03:44,040 You can do things like Docker images. 81 00:03:44,040 --> 00:03:47,177 And see all the images that are within your environment 82 00:03:47,177 --> 00:03:48,970 and have a little bit more 83 00:03:48,970 --> 00:03:51,660 than what you probably have in your environment. 84 00:03:51,660 --> 00:03:53,680 You can do a Docker version, 85 00:03:53,680 --> 00:03:57,410 and see the version of the Docker engine. 86 00:03:57,410 --> 00:04:00,273 And of course, the underlying architecture 87 00:04:00,273 --> 00:04:03,670 and the underlying infrastructure. 88 00:04:03,670 --> 00:04:06,270 Now, another really cool way to learn 89 00:04:06,270 --> 00:04:08,570 about container technology is to take advantage 90 00:04:08,570 --> 00:04:10,983 of the free Katacoda environments 91 00:04:10,983 --> 00:04:13,950 that assists at katacoda.com. 92 00:04:13,950 --> 00:04:15,400 Now Katacoda is a company 93 00:04:15,400 --> 00:04:18,120 that will really acquired a few years ago. 94 00:04:18,120 --> 00:04:19,400 If you click on learn, 95 00:04:19,400 --> 00:04:21,280 it will take you to this page. 96 00:04:21,280 --> 00:04:23,480 And as you see down below, 97 00:04:23,480 --> 00:04:26,570 there is a course about Docker container run times, 98 00:04:26,570 --> 00:04:28,380 builders, and registers 99 00:04:28,380 --> 00:04:31,370 that you can basically go through, again free, 100 00:04:31,370 --> 00:04:33,550 and basically goes over, you know, what is a container? 101 00:04:33,550 --> 00:04:35,133 You can start a scenario like this 102 00:04:35,133 --> 00:04:39,281 and it takes you straight to an environment 103 00:04:39,281 --> 00:04:41,101 that is hosted in the cloud 104 00:04:41,101 --> 00:04:45,430 on where you can interact with a Docker engine. 105 00:04:45,430 --> 00:04:46,263 And as a matter of fact, 106 00:04:46,263 --> 00:04:48,250 you can do a lot of these things 107 00:04:48,250 --> 00:04:50,300 also in websploit as well, right, 108 00:04:50,300 --> 00:04:52,310 if you already have it installed. 109 00:04:52,310 --> 00:04:54,520 But you can go through all the exercises. 110 00:04:54,520 --> 00:04:56,580 And of course, in this case, 111 00:04:56,580 --> 00:04:59,480 it's actually in instantiating a container 112 00:04:59,480 --> 00:05:01,900 that is running a ready server. 113 00:05:01,900 --> 00:05:05,490 But it you know, it's a really good learning environment, 114 00:05:05,490 --> 00:05:07,210 an interactive learning environment 115 00:05:07,210 --> 00:05:09,900 because whenever it comes to technology like this 116 00:05:09,900 --> 00:05:11,400 the more that you practice, 117 00:05:11,400 --> 00:05:13,017 the better that you will become, right? 118 00:05:13,017 --> 00:05:14,631 Now if you go actually back 119 00:05:14,631 --> 00:05:18,610 to all the different scenarios you have, 120 00:05:18,610 --> 00:05:20,650 you know of course, what is a container image, 121 00:05:20,650 --> 00:05:23,202 different foundations about Docker, 122 00:05:23,202 --> 00:05:26,840 running containers department with Podman, RunC, 123 00:05:26,840 --> 00:05:30,204 and a running containers directly in RunC. 124 00:05:30,204 --> 00:05:33,230 It goes over what is actually RunC, and so on. 125 00:05:33,230 --> 00:05:36,010 So definitely take advantage of these resources. 126 00:05:36,010 --> 00:05:37,610 In the next lesson, 127 00:05:37,610 --> 00:05:39,500 you're gonna be going over 128 00:05:39,500 --> 00:05:43,120 different concepts about serverless computing. 129 00:05:43,120 --> 00:05:44,550 And later in the course, 130 00:05:44,550 --> 00:05:46,593 you're gonna be learning about Kubernetes 131 00:05:46,593 --> 00:05:50,030 and also several exercises in here 132 00:05:50,030 --> 00:05:53,483 related to deploying a Kubernetes cluster.