1 00:00:00,000 --> 00:00:09,920 This video is about container runtimes. 2 00:00:09,920 --> 00:00:13,600 The container runtime is the software that runs a container. 3 00:00:13,600 --> 00:00:18,080 And common container runtimes are ContainerD and Cryo. 4 00:00:18,080 --> 00:00:22,280 You write C-R-I-O, but Cryo is the way to pronounce it. 5 00:00:22,280 --> 00:00:26,080 The container runtime is a part of the container engine. 6 00:00:26,080 --> 00:00:29,959 And the container engine is a complete software solution that is used to start 7 00:00:29,959 --> 00:00:32,279 and manage the container. 8 00:00:32,279 --> 00:00:35,400 Docker and Popman are the most common container engines. 9 00:00:35,400 --> 00:00:40,040 There are some small other ones around as well. 10 00:00:40,040 --> 00:00:45,439 Docker started the container revolution in the year 2013-2014. 11 00:00:45,439 --> 00:00:48,919 And Docker has been the dominant container engine until the release of 12 00:00:48,919 --> 00:00:53,080 Red Hat Enterprise Linux 8 in 2018. 13 00:00:53,080 --> 00:00:57,959 And that is because Red Hat didn't want to be depending on the Docker development. 14 00:00:57,959 --> 00:01:00,439 Red Hat wanted something themselves. 15 00:01:00,439 --> 00:01:02,759 And that is why with the release of RHEL 8, 16 00:01:02,759 --> 00:01:05,919 Red Hat offered Popman as a replacement for Docker. 17 00:01:05,919 --> 00:01:07,760 And it dropped support for Docker. 18 00:01:07,760 --> 00:01:09,160 And in case you are wondering, 19 00:01:09,160 --> 00:01:12,599 wasn't that problematic for current Red Hat Docker users? 20 00:01:12,599 --> 00:01:17,839 No, because container images are standardized in the Open Containers Initiative. 21 00:01:17,839 --> 00:01:23,919 And if you just replace Docker with Popman, it would work. 22 00:01:23,919 --> 00:01:30,680 Also, because Popman is using a CLI experience that's completely similar to the Docker CLI, 23 00:01:30,680 --> 00:01:37,000 Popman is now commonly available and used in all the distributions as an alternative for Docker. 24 00:01:37,000 --> 00:01:40,879 Now, let me tell you how you can use Docker on Ubuntu. 25 00:01:40,879 --> 00:01:44,440 If you want to use Docker on Ubuntu, you need to install it. 26 00:01:44,440 --> 00:01:45,680 That's pretty easy. 27 00:01:45,680 --> 00:01:49,239 Just use sudo apt install docker.io. 28 00:01:49,239 --> 00:01:52,919 Popman on Red Hat does not need any further installation, 29 00:01:52,919 --> 00:01:59,760 because it's part of the default installation of most Red Hat and Red Hat family installation patterns. 30 00:01:59,760 --> 00:02:05,839 Only on minimal installations, you may have to use dnf install popman to get your hands on it. 31 00:02:05,839 --> 00:02:09,520 Let me show you how to install Docker on Ubuntu. 32 00:02:09,520 --> 00:02:11,479 So how do we install Docker? 33 00:02:11,479 --> 00:02:16,000 Well, simple, sudo apt install docker.io. 34 00:02:16,000 --> 00:02:18,000 And that should be doing it. 35 00:02:18,000 --> 00:02:22,080 So how about a first test drive Docker run nginx? 36 00:02:22,080 --> 00:02:23,880 Oh no, permission denied. 37 00:02:23,880 --> 00:02:25,360 You know what is going on? 38 00:02:25,360 --> 00:02:30,639 In order to run Docker, the user who wants to run Docker needs to be a member of the Docker group. 39 00:02:30,639 --> 00:02:40,320 So I'm going to use sudo usermod minus a uppercase G docker for student, which is my local account. 40 00:02:40,320 --> 00:02:45,119 Next, the problematic thing is that I would need to log out and log in again. 41 00:02:45,119 --> 00:02:51,919 But that's a little trick when I use new grp docker and I use id again. 42 00:02:51,919 --> 00:02:55,360 Now you can see that I'm a member of the group Docker. 43 00:02:55,360 --> 00:03:00,880 And as a result, I should be able to use Docker run minus d nginx. 44 00:03:00,880 --> 00:03:03,279 Minus d is running it in detached mode. 45 00:03:03,279 --> 00:03:06,240 And there we can see that I'm running it in detached mode. 46 00:03:07,199 --> 00:03:09,520 Minus d is running it in detached mode. 47 00:03:09,520 --> 00:03:13,360 And there we can see that it is unable to find the image locally. 48 00:03:13,360 --> 00:03:15,919 It is running the image and it just did. 49 00:03:15,919 --> 00:03:17,600 So we have Docker up and running. 50 00:03:17,600 --> 00:03:21,440 Oh, and don't try to install Docker on Red Hat and family. 51 00:03:21,440 --> 00:03:24,559 Because on Red Hat and family, it's really not supported. 52 00:03:24,559 --> 00:03:28,160 And it will break with every single software update you do. 53 00:03:28,160 --> 00:03:31,199 On Red Hat and family, Podman is the alternative. 54 00:03:31,199 --> 00:03:36,000 And the good news is that Podman has the exact same command line experience as Docker. 55 00:03:36,000 --> 00:03:37,839 All the arguments are the same. 56 00:03:37,839 --> 00:03:43,279 So instead of Docker run minus d nginx, you would use Podman run minus d nginx. 57 00:03:44,080 --> 00:03:46,559 More about this in the next couple of videos.