title
Docker Tutorial for Beginners

description
Docker Tutorial for Beginners - Learn Docker for a career in software or DevOps engineering. This Docker tutorial teaches you everything you need to get started. - Get the complete Docker course (zero to hero): https://bit.ly/3sO7Z5H - Subscribe for more Docker tutorials like this: https://goo.gl/6PYaGF Want to learn more from me? Check out these links: - Courses: https://codewithmosh.com - Twitter: https://twitter.com/moshhamedani - Facebook: https://www.facebook.com/programmingwithmosh/ - Blog: https://programmingwithmosh.com TABLE OF CONTENT 0:00:00 Introduction 0:00:57 Prerequisites 0:01:40 How to Take This Course 0:02:26 Getting Started with Docker 0:03:10 What is Docker? 0:06:25 Virtual Machines vs Containers 0:09:39 Docker Architecture 0:11:54 Installing Docker 0:15:29 Development Workflow 0:17:45 Docker in Action 0:27:54 The Linux Command Line 0:28:47 Linux Distributions 0:29:49 Running Linux 0:35:01 Managing Packages 0:38:35 Linux File System 0:40:33 Navigating the File System 0:44:53 Manipulating Files and Directories 0:48:20 Editing and Viewing Files 0:52:15 Redirection #Docker #DevOps Docker is the de facto standard for building, shipping and running applications in a consistent manner. That's why most companies use it and are looking for developers with Docker skills. If you're looking for a career in software or DevOps engineering, you must have Docker on your resume. And not only that, you should know it well and be able to use it to effectively package and deploy your applications.

detail
{'title': 'Docker Tutorial for Beginners', 'heatmap': [{'end': 1009.455, 'start': 940.222, 'weight': 0.791}, {'end': 1381.311, 'start': 1276.4, 'weight': 0.726}], 'summary': 'The ultimate docker course introduces practical techniques for running and deploying full stack applications, emphasizing the benefits of docker over virtual machines and the importance of learning basic linux commands for troubleshooting and productivity, covering installation, workflow, image management, linux basics, and file system navigation.', 'chapters': [{'end': 125.032, 'segs': [{'end': 32.463, 'src': 'embed', 'start': 1.991, 'weight': 0, 'content': [{'end': 3.532, 'text': 'Welcome to the ultimate Docker course.', 'start': 1.991, 'duration': 1.541}, {'end': 10.314, 'text': "In this course, I'm going to take you on a journey and teach you everything you need to know about Docker from the basics to more advanced concepts.", 'start': 3.892, 'duration': 6.422}, {'end': 15.676, 'text': "So by the end of this course, you'll be able to use it like a pro as part of your software development workflow.", 'start': 10.554, 'duration': 5.122}, {'end': 22.319, 'text': "If you're looking for a comprehensive and highly practical course that takes you from zero to hero, this is the Docker course for you.", 'start': 16.116, 'duration': 6.203}, {'end': 26.541, 'text': "We're going to start off with a really simple project, so you understand the basics.", 'start': 22.799, 'duration': 3.742}, {'end': 32.463, 'text': "then we'll use Docker to run and deploy a full stack application with a front end, back end and a database.", 'start': 26.541, 'duration': 5.922}], 'summary': 'Learn docker from basics to pro, deploy a full stack app. zero to hero course.', 'duration': 30.472, 'max_score': 1.991, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI1991.jpg'}, {'end': 94.715, 'src': 'embed', 'start': 62.369, 'weight': 2, 'content': [{'end': 64.771, 'text': "Let's quickly talk about what you need to know to take this course.", 'start': 62.369, 'duration': 2.402}, {'end': 70.435, 'text': "To take this course, you don't need any prior knowledge of Docker, because I'm going to teach you everything from scratch,", 'start': 65.351, 'duration': 5.084}, {'end': 73.117, 'text': 'but you should have at least 3 months of programming experience.', 'start': 70.435, 'duration': 2.682}, {'end': 80.323, 'text': 'Ideally, you should have built at least one application, so you should know concepts like frontend, backend, API, and database.', 'start': 73.678, 'duration': 6.645}, {'end': 87.409, 'text': "It doesn't matter what languages and frameworks or what database engines you're familiar with, but you should know what these concepts are all about.", 'start': 80.783, 'duration': 6.626}, {'end': 94.715, 'text': 'Also, you should be familiar with basic git commands, like cloning a github repository, committing code, pushing and pulling.', 'start': 87.969, 'duration': 6.746}], 'summary': 'No prior docker knowledge needed. requires 3 months programming experience, familiarity with app building concepts, and basic git commands.', 'duration': 32.346, 'max_score': 62.369, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI62369.jpg'}], 'start': 1.991, 'title': 'Ultimate docker course', 'summary': 'Introduces the ultimate docker course, enabling learners to use docker proficiently, requiring no prior docker knowledge but at least 3 months of programming experience, and covering practical techniques for running and deploying full stack applications.', 'chapters': [{'end': 125.032, 'start': 1.991, 'title': 'Ultimate docker course', 'summary': 'Introduces the ultimate docker course, covering everything from basics to advanced concepts, enabling learners to use docker proficiently as part of their software development workflow. the course requires no prior docker knowledge but at least 3 months of programming experience, and covers practical techniques for running and deploying full stack applications.', 'duration': 123.041, 'highlights': ['The course covers everything from basics to advanced concepts, enabling learners to use Docker proficiently as part of their software development workflow.', 'The course requires no prior Docker knowledge but at least 3 months of programming experience.', 'Covers practical techniques for running and deploying full stack applications with a front end, back end, and a database.']}], 'duration': 123.041, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI1991.jpg', 'highlights': ['Covers practical techniques for running and deploying full stack applications with a front end, back end, and a database.', 'The course covers everything from basics to advanced concepts, enabling learners to use Docker proficiently as part of their software development workflow.', 'The course requires no prior Docker knowledge but at least 3 months of programming experience.']}, {'end': 869.816, 'segs': [{'end': 310.235, 'src': 'embed', 'start': 286.078, 'weight': 0, 'content': [{'end': 295.965, 'text': 'They simply tell Docker to bring up your application and Docker itself will automatically download and run these dependencies inside an isolated environment called a container.', 'start': 286.078, 'duration': 9.887}, {'end': 297.746, 'text': 'And this is the beauty of Docker.', 'start': 296.345, 'duration': 1.401}, {'end': 304.351, 'text': 'This isolated environment allows multiple applications use different versions of some software side by side.', 'start': 298.167, 'duration': 6.184}, {'end': 310.235, 'text': 'So one application may use node version 14, another application may use node version 9.', 'start': 304.852, 'duration': 5.383}], 'summary': 'Docker allows isolated environments for different software versions, enabling multiple applications to run side by side.', 'duration': 24.157, 'max_score': 286.078, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI286078.jpg'}, {'end': 375.341, 'src': 'embed', 'start': 341.906, 'weight': 3, 'content': [{'end': 344.747, 'text': "because we're always afraid that we would mess up with some application.", 'start': 341.906, 'duration': 2.841}, {'end': 347.268, 'text': "With Docker, we don't have to worry about this.", 'start': 345.367, 'duration': 1.901}, {'end': 352.63, 'text': 'Because each application runs with its dependencies inside an isolated environment,', 'start': 347.868, 'duration': 4.762}, {'end': 356.592, 'text': 'we can safely remove an application with all its dependencies to clean up our machine.', 'start': 352.63, 'duration': 3.962}, {'end': 363.835, 'text': "Isn't that great? So, in a nutshell, Docker helps us consistently build, run, and ship our applications.", 'start': 356.932, 'duration': 6.903}, {'end': 368.377, 'text': "And that's why a lot of employers are looking for people with Docker skills these days.", 'start': 364.215, 'duration': 4.162}, {'end': 375.341, 'text': "So if you're pursuing a job as a software or devops engineer, I highly encourage you to learn docker and learn it well.", 'start': 368.937, 'duration': 6.404}], 'summary': 'Docker allows for isolated application environments, enabling consistent building, running, and shipping of applications, making it a sought-after skill for software and devops engineers.', 'duration': 33.435, 'max_score': 341.906, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI341906.jpg'}, {'end': 510.51, 'src': 'embed', 'start': 485.973, 'weight': 6, 'content': [{'end': 491.697, 'text': 'Each virtual machine needs a full copy of an operating system that needs to be licensed, patched, and monitored.', 'start': 485.973, 'duration': 5.724}, {'end': 499.084, 'text': "And that's why these virtual machines are slow to start because the entire operating system has to be loaded just like starting your computer.", 'start': 492.138, 'duration': 6.946}, {'end': 503.146, 'text': 'Another problem is that these virtual machines are resource intensive,', 'start': 499.844, 'duration': 3.302}, {'end': 510.51, 'text': 'because each virtual machine takes a slice of the actual physical hardware resources like CPU, memory and disk space.', 'start': 503.146, 'duration': 7.364}], 'summary': 'Virtual machines require full os copies, slowing start-up and being resource-intensive.', 'duration': 24.537, 'max_score': 485.973, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI485973.jpg'}, {'end': 559.352, 'src': 'embed', 'start': 525.659, 'weight': 4, 'content': [{'end': 528.701, 'text': "Usually a handful, otherwise we're going to run out of hardware resources.", 'start': 525.659, 'duration': 3.042}, {'end': 530.541, 'text': "Now let's talk about containers.", 'start': 529.361, 'duration': 1.18}, {'end': 538.004, 'text': "Containers give us the same kind of isolation, so we can run multiple applications in isolation, but they're more lightweight.", 'start': 531.142, 'duration': 6.862}, {'end': 540.125, 'text': "They don't need a full operating system.", 'start': 538.344, 'duration': 1.781}, {'end': 545.046, 'text': 'In fact, all containers on a single machine share the operating system of the host.', 'start': 540.405, 'duration': 4.641}, {'end': 550.168, 'text': 'So that means we need to license, patch, and monitor a single operating system.', 'start': 545.486, 'duration': 4.682}, {'end': 559.352, 'text': 'also because the operating system has already started on the host, a container can start up pretty quickly, usually in a second, sometimes less.', 'start': 550.868, 'duration': 8.484}], 'summary': 'Containers provide lightweight isolation, sharing host os, quick startup - usually within a second.', 'duration': 33.693, 'max_score': 525.659, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI525659.jpg'}, {'end': 612.702, 'src': 'embed', 'start': 589.285, 'weight': 7, 'content': [{'end': 596.548, 'text': 'Docker uses a client server architecture, so it has a client component that talks to a server component using a restful API.', 'start': 589.285, 'duration': 7.263}, {'end': 603.952, 'text': 'The server, also called the Docker engine, sits in the background and takes care of building and running Docker containers.', 'start': 597.109, 'duration': 6.843}, {'end': 609.438, 'text': 'Now technically a container is just a process, like other processes running on your computer.', 'start': 604.532, 'duration': 4.906}, {'end': 612.702, 'text': "But it's a special kind of process which we're going to talk about soon.", 'start': 609.818, 'duration': 2.884}], 'summary': 'Docker employs a client-server architecture, handling docker containers as specialized processes.', 'duration': 23.417, 'max_score': 589.285, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI589285.jpg'}], 'start': 125.352, 'title': 'Docker and container advantages', 'summary': 'Discusses the benefits of docker, including its ability to consistently build, run, and ship applications, and the advantages over virtual machines. it emphasizes the importance of mastering docker for software and devops engineers due to its widespread use and employer demand. it also explains how containers are more lightweight than virtual machines, needing just seconds to start and allowing tens or hundreds to run side by side on a single host.', 'chapters': [{'end': 485.452, 'start': 125.352, 'title': 'Mastering docker and containers', 'summary': 'Discusses the benefits of docker, including its ability to consistently build, run, and ship applications, and the advantages over virtual machines. it emphasizes the importance of mastering docker for software and devops engineers due to its widespread use and employer demand.', 'duration': 360.1, 'highlights': ['Docker allows applications to run consistently on different machines and eliminates deployment issues such as missing files, different software versions, and configuration settings, ensuring the application works across various environments.', 'Docker facilitates easy setup and running of applications for new team members, as it automatically manages dependencies in an isolated environment, reducing the time and effort required for setting up new machines.', "Docker's isolated environment enables multiple applications to use different software versions simultaneously without interfering with each other, enhancing flexibility and compatibility.", 'Docker allows easy removal of applications and their dependencies, leading to a clean and clutter-free development machine without the fear of impacting other applications.', "The chapter highlights the differences between Docker and virtual machines, emphasizing Docker's advantages in providing isolated environments for applications with minimal overhead compared to virtual machines."]}, {'end': 869.816, 'start': 485.973, 'title': 'Containers vs virtual machines', 'summary': 'Explains how containers are more lightweight than virtual machines, needing just seconds to start and allowing tens or hundreds to run side by side on a single host, unlike virtual machines which are slow to start, resource intensive, and have limited number of vms per machine.', 'duration': 383.843, 'highlights': ['Containers are more lightweight than virtual machines, starting up in seconds and allowing tens or hundreds to run side by side on a single host, unlike virtual machines which are slow to start and resource intensive.', 'Virtual machines need a full copy of an operating system for each VM, making them slow to start, resource intensive, and limited in number per machine.', 'Docker uses a client-server architecture with a client component that talks to a server component using a RESTful API, and the server, or Docker engine, takes care of building and running Docker containers.']}], 'duration': 744.464, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI125352.jpg', 'highlights': ['Docker allows applications to run consistently on different machines, ensuring cross-environment functionality.', 'Docker facilitates easy setup and running of applications for new team members, reducing setup time and effort.', "Docker's isolated environment enables multiple applications to use different software versions simultaneously.", 'Docker allows easy removal of applications and their dependencies, leading to a clean development machine.', 'Containers are more lightweight than virtual machines, starting up in seconds and allowing multiple instances on a single host.', 'Docker emphasizes advantages in providing isolated environments for applications with minimal overhead compared to virtual machines.', 'Virtual machines need a full copy of an operating system for each VM, making them slow to start and resource intensive.', 'Docker uses a client-server architecture with a client component that talks to a server component using a RESTful API.']}, {'end': 1255.321, 'segs': [{'end': 915.317, 'src': 'embed', 'start': 869.816, 'weight': 0, 'content': [{'end': 874.98, 'text': 'this is going to take you to this page on microsoft.com, where you can download the latest linux kernel.', 'start': 869.816, 'duration': 5.164}, {'end': 878.021, 'text': 'so just click on this link to get an msi file.', 'start': 874.98, 'duration': 3.041}, {'end': 880.143, 'text': 'run it, and then you have to restart your computer.', 'start': 878.021, 'duration': 2.122}, {'end': 885.809, 'text': 'Now, once your computer is restarted, you need to wait a little while until docker engine started.', 'start': 880.703, 'duration': 5.106}, {'end': 889.513, 'text': 'Depending on your machine, this might take several seconds or up to a minute.', 'start': 886.209, 'duration': 3.304}, {'end': 895.68, 'text': 'So wait a little while, then open up a terminal window and run docker version.', 'start': 890.654, 'duration': 5.026}, {'end': 902.192, 'text': 'So over here, you can see the version of the client and the server.', 'start': 897.061, 'duration': 5.131}, {'end': 907.374, 'text': 'If the server, which is docker engine is not running, you are not going to see this information.', 'start': 902.752, 'duration': 4.622}, {'end': 911.815, 'text': 'And this applies to all operating systems, windows, mac os, and linux.', 'start': 907.794, 'duration': 4.021}, {'end': 915.317, 'text': 'So make sure docker engine is running before going forward.', 'start': 912.336, 'duration': 2.981}], 'summary': 'Download and run the latest linux kernel from microsoft.com, then ensure docker engine is running before proceeding.', 'duration': 45.501, 'max_score': 869.816, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI869816.jpg'}, {'end': 1027.887, 'src': 'heatmap', 'start': 940.222, 'weight': 2, 'content': [{'end': 943.783, 'text': "it doesn't matter what kind of application it is or how it's built.", 'start': 940.222, 'duration': 3.561}, {'end': 949.864, 'text': 'we take that application and dockerize it, which means we make a small change so that it can be run by docker.', 'start': 943.783, 'duration': 6.081}, {'end': 952.404, 'text': 'How? We just add a docker file to it.', 'start': 950.344, 'duration': 2.06}, {'end': 959.745, 'text': 'A docker file is a plain text file that includes instructions that docker uses to package up this application into an image.', 'start': 952.864, 'duration': 6.881}, {'end': 963.386, 'text': 'This image contains everything our application needs to run.', 'start': 960.285, 'duration': 3.101}, {'end': 969.769, 'text': 'Everything, Typically a cut down operating system, a runtime environment like node or python.', 'start': 963.686, 'duration': 6.083}, {'end': 974.612, 'text': 'it also contains application files, third party libraries, environment variables and so on.', 'start': 969.769, 'duration': 4.843}, {'end': 979.896, 'text': 'So we create a docker file and give it to docker for packaging our application into an image.', 'start': 975.233, 'duration': 4.663}, {'end': 984.478, 'text': 'Once we have an image, we tell docker to start a container using that image.', 'start': 980.496, 'duration': 3.982}, {'end': 987.66, 'text': 'So a container, as I told you, is just a process.', 'start': 984.979, 'duration': 2.681}, {'end': 993.103, 'text': "But it's a special kind of process because it has its own file system which is provided by the image.", 'start': 988.06, 'duration': 5.043}, {'end': 1000.888, 'text': 'So our application gets loaded inside a container or a process, and this is how we run our application locally on our development machine.', 'start': 993.644, 'duration': 7.244}, {'end': 1009.455, 'text': 'So, instead of directly launching the application and running it inside a typical process, we tell docker to run it inside a container,', 'start': 1001.368, 'duration': 8.087}, {'end': 1010.876, 'text': 'an isolated environment.', 'start': 1009.455, 'duration': 1.421}, {'end': 1016.921, 'text': "Now here's the beauty of docker, once we have this image, we can push it to a docker registry like docker hub.", 'start': 1011.516, 'duration': 5.405}, {'end': 1019.702, 'text': 'Docker Hub to Docker is like GitHub to Git.', 'start': 1017.401, 'duration': 2.301}, {'end': 1022.784, 'text': "It's a storage for Docker images that anyone can use.", 'start': 1020.083, 'duration': 2.701}, {'end': 1027.887, 'text': 'So once our application image is on Docker Hub, then we can put it on any machines running Docker.', 'start': 1023.324, 'duration': 4.563}], 'summary': 'Dockerizing applications enables packaging into images for easy deployment, with the flexibility to run locally and on any machines running docker.', 'duration': 87.665, 'max_score': 940.222, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI940222.jpg'}, {'end': 1074.079, 'src': 'embed', 'start': 1044.016, 'weight': 3, 'content': [{'end': 1050.603, 'text': 'So with docker, we no longer need to maintain long, complex release documents that have to be precisely followed.', 'start': 1044.016, 'duration': 6.587}, {'end': 1055.268, 'text': 'All the instructions for building an image of an application are written in a docker file.', 'start': 1051.084, 'duration': 4.184}, {'end': 1060.174, 'text': 'With that, we can package our application into an image and run it virtually anywhere.', 'start': 1055.709, 'duration': 4.465}, {'end': 1061.635, 'text': 'This is the beauty of docker.', 'start': 1060.354, 'duration': 1.281}, {'end': 1064.018, 'text': "Next we're going to see this workflow in action.", 'start': 1062.296, 'duration': 1.722}, {'end': 1074.079, 'text': "In this lesson, I'm going to walk you through a typical development workflow.", 'start': 1071.158, 'duration': 2.921}], 'summary': 'Docker simplifies release process, enabling easy application packaging and deployment.', 'duration': 30.063, 'max_score': 1044.016, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI1044016.jpg'}], 'start': 869.816, 'title': 'Docker installation and workflow', 'summary': 'Covers the installation process of the latest linux kernel from microsoft.com, waiting for the docker engine to start, and emphasizes its importance. it also explains the benefits of using docker, including simplified deployment, packaging and running applications virtually anywhere, creating a docker file, and utilizing docker hub as a registry for docker images.', 'chapters': [{'end': 915.317, 'start': 869.816, 'title': 'Installing and checking docker engine', 'summary': 'Explains the process of downloading and installing the latest linux kernel from microsoft.com, followed by restarting the computer and waiting for the docker engine to start, which may take several seconds to a minute. it emphasizes the importance of ensuring that the docker engine is running before proceeding, as it affects all operating systems.', 'duration': 45.501, 'highlights': ['The process involves downloading the latest Linux kernel from microsoft.com, running the msi file, and restarting the computer.', "After restarting, it's important to wait for the Docker engine to start, which may take several seconds to a minute.", 'Ensuring that the Docker engine is running is crucial before proceeding, as it impacts all operating systems.']}, {'end': 1255.321, 'start': 915.737, 'title': 'Docker workflow and benefits', 'summary': 'Explains the process of dockerizing an application, the benefits of using docker, and the simplified deployment process with docker, including the ability to package and run applications virtually anywhere, and the usage of docker hub as a storage for docker images. it also covers the creation of a docker file and its role in packaging the application, along with the simplicity and efficiency of using docker for deployment. the chapter also introduces the process of creating a docker file and utilizing docker hub as a registry for docker images.', 'duration': 339.584, 'highlights': ['The chapter explains the process of dockerizing an application, the benefits of using Docker, and the simplified deployment process with Docker.', 'The ability to package and run applications virtually anywhere, and the usage of docker hub as a storage for Docker images.', 'The process of creating a docker file and its role in packaging the application.', 'The simplicity and efficiency of using Docker for deployment.', 'The introduction of the process of creating a docker file and utilizing docker hub as a registry for docker images.']}], 'duration': 385.505, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI869816.jpg', 'highlights': ['The process involves downloading the latest Linux kernel from microsoft.com, running the msi file, and restarting the computer.', 'Ensuring that the Docker engine is running is crucial before proceeding, as it impacts all operating systems.', 'The ability to package and run applications virtually anywhere, and the usage of docker hub as a storage for Docker images.', 'The process of creating a docker file and its role in packaging the application.', 'The chapter explains the process of dockerizing an application, the benefits of using Docker, and the simplified deployment process with Docker.']}, {'end': 1670.229, 'segs': [{'end': 1381.311, 'src': 'heatmap', 'start': 1276.4, 'weight': 0.726, 'content': [{'end': 1281.507, 'text': "So the size of the image that we're going to download and build on top of is going to be very small.", 'start': 1276.4, 'duration': 5.107}, {'end': 1287.131, 'text': 'okay? So we start from that image, then we need to copy our application or program files.', 'start': 1281.747, 'duration': 5.384}, {'end': 1290.273, 'text': 'For that we use the copy instruction or copy command.', 'start': 1287.811, 'duration': 2.462}, {'end': 1296.958, 'text': "we're going to copy all the files in the current directory into the app directory, into that image.", 'start': 1290.273, 'duration': 6.685}, {'end': 1302.902, 'text': "So that image has a file system and in that file system we're going to create a directory called app.", 'start': 1297.458, 'duration': 5.444}, {'end': 1308.767, 'text': "okay?. Now, finally, we're going to use the command instruction to execute a command.", 'start': 1302.902, 'duration': 5.865}, {'end': 1313.384, 'text': 'What command should we execute here? node app.js.', 'start': 1309.367, 'duration': 4.017}, {'end': 1319.749, 'text': 'But this file is inside the app directory, so we have to prefix it with the directory name.', 'start': 1313.885, 'duration': 5.864}, {'end': 1331.077, 'text': "Alternatively, here we could set the current working directory, workdir to slash app and then we don't need to prefix this with the directory name.", 'start': 1320.349, 'duration': 10.728}, {'end': 1337.541, 'text': "So when we use this instruction, all the following instructions assume that we're currently inside the app directory.", 'start': 1331.637, 'duration': 5.904}, {'end': 1343.446, 'text': 'Okay? So, these instructions clearly document our deployment process.', 'start': 1337.782, 'duration': 5.664}, {'end': 1348.289, 'text': 'Now, we go to the terminal and tell docker to package up our application.', 'start': 1344.066, 'duration': 4.223}, {'end': 1354.193, 'text': 'So, we say docker build, we need to give our image a tag, a tag to identify it.', 'start': 1348.629, 'duration': 5.564}, {'end': 1363.48, 'text': 'So, dash t, here we specify a name like hello docker, and then we need to specify where docker can find a docker file.', 'start': 1354.473, 'duration': 9.007}, {'end': 1371.905, 'text': "So we're currently inside hello docker directory, and our docker file is right here, so we use a period to reference the current directory.", 'start': 1363.94, 'duration': 7.965}, {'end': 1373.386, 'text': "Let's go with that.", 'start': 1372.725, 'duration': 0.661}, {'end': 1378.449, 'text': 'Now you might be expecting an image file inside the current directory.', 'start': 1375.087, 'duration': 3.362}, {'end': 1381.311, 'text': 'But back in VS code, look, there is nothing here.', 'start': 1379.089, 'duration': 2.222}], 'summary': 'Using docker, we build a small image, copy files, and execute a command for deployment.', 'duration': 104.911, 'max_score': 1276.4, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI1276400.jpg'}, {'end': 1465.014, 'src': 'embed', 'start': 1437.38, 'weight': 0, 'content': [{'end': 1441.666, 'text': 'So this image contains Alpine Linux, node, and our application files.', 'start': 1437.38, 'duration': 4.286}, {'end': 1443.188, 'text': 'And the total size is 112 megabytes.', 'start': 1442.047, 'duration': 1.141}, {'end': 1451.52, 'text': 'that if we used a different node image that was based on a different distribution of linux, we would end up with a larger image.', 'start': 1445.231, 'duration': 6.289}, {'end': 1456.026, 'text': 'And then when deploying that image, we would have to transfer that image from one computer to another.', 'start': 1451.94, 'duration': 4.086}, {'end': 1459.731, 'text': "So that's why we use node alpine, because this is a very small image.", 'start': 1456.507, 'duration': 3.224}, {'end': 1465.014, 'text': 'So we have built this image, now we can run this image on any computer running docker.', 'start': 1460.812, 'duration': 4.202}], 'summary': 'Alpine linux image with node and app files is 112mb, ensuring portability and efficiency for docker deployment.', 'duration': 27.634, 'max_score': 1437.38, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI1437380.jpg'}, {'end': 1509.476, 'src': 'embed', 'start': 1479.422, 'weight': 1, 'content': [{'end': 1482.435, 'text': 'Now, look, We see the message on the terminal.', 'start': 1479.422, 'duration': 3.013}, {'end': 1487.439, 'text': 'Now, I can go ahead and publish this image to docker hub, so anyone can use this image.', 'start': 1483.095, 'duration': 4.344}, {'end': 1492.883, 'text': 'Then I can go on another machine like a test or a production machine and pull and run this image.', 'start': 1487.739, 'duration': 5.144}, {'end': 1495.505, 'text': "In fact, I've done this before recording this video.", 'start': 1493.243, 'duration': 2.262}, {'end': 1504.852, 'text': 'So back to docker hub, look, I have this repository code with mosh slash hello docker, now we can take this image and run it on any computers.', 'start': 1496.406, 'duration': 8.446}, {'end': 1506.253, 'text': 'Let me show you something really cool.', 'start': 1505.153, 'duration': 1.1}, {'end': 1509.476, 'text': "So let's search for play with docker.", 'start': 1506.814, 'duration': 2.662}], 'summary': 'Demonstrates publishing an image to docker hub and running it on multiple machines.', 'duration': 30.054, 'max_score': 1479.422, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI1479422.jpg'}, {'end': 1663.44, 'src': 'embed', 'start': 1633.091, 'weight': 2, 'content': [{'end': 1637.072, 'text': 'Once we have an image, we can run it virtually anywhere, on any machine with docker.', 'start': 1633.091, 'duration': 3.981}, {'end': 1640.132, 'text': 'Hey guys, Mosh here.', 'start': 1639.292, 'duration': 0.84}, {'end': 1646.614, 'text': "If you're serious about learning Docker, I actually have a complete Docker course on my coding school, codewithmosh.com.", 'start': 1640.512, 'duration': 6.102}, {'end': 1650.856, 'text': "This tutorial you've been watching is a cut down version of the complete course.", 'start': 1646.995, 'duration': 3.861}, {'end': 1657.638, 'text': 'In the full course, you will learn how to run and deploy a full stack application with a front end, back end, and a database.', 'start': 1651.336, 'duration': 6.302}, {'end': 1663.44, 'text': "Our application also includes automated tests, so it's a great real world scenario for learning Docker.", 'start': 1658.058, 'duration': 5.382}], 'summary': 'Learn docker to run and deploy a full stack application with automated tests on any machine with docker.', 'duration': 30.349, 'max_score': 1633.091, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI1633091.jpg'}], 'start': 1255.921, 'title': 'Docker deployment and image management', 'summary': 'Covers building a small alpine linux-based docker image for a node.js application, resulting in an image size of 112 megabytes and the ability to run the application on any machine with docker. it also explains the process of publishing the image to docker hub and running it on different machines.', 'chapters': [{'end': 1670.229, 'start': 1255.921, 'title': 'Docker deployment and image management', 'summary': 'Covers the process of building a small alpine linux-based docker image for a node.js application, resulting in an image size of 112 megabytes and the ability to run the application on any machine with docker. it also explains the process of publishing the image to docker hub and running it on different machines.', 'duration': 414.308, 'highlights': ['The size of the Docker image built using Alpine Linux for a Node.js application is 112 megabytes.', 'The process of publishing the Docker image to Docker Hub and running it on different machines is explained.', 'The tutorial is a cut-down version of a complete Docker course available on the coding school, codewithmosh.com, covering deploying a full stack application with automated tests.']}], 'duration': 414.308, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI1255921.jpg', 'highlights': ['The size of the Docker image built using Alpine Linux for a Node.js application is 112 megabytes.', 'The process of publishing the Docker image to Docker Hub and running it on different machines is explained.', 'The tutorial is a cut-down version of a complete Docker course available on codewithmosh.com.']}, {'end': 2316.245, 'segs': [{'end': 1718.769, 'src': 'embed', 'start': 1693.378, 'weight': 1, 'content': [{'end': 1698.941, 'text': 'So if you want to be productive and troubleshoot issues easily, you need to know some of the basic Linux commands.', 'start': 1693.378, 'duration': 5.563}, {'end': 1702.562, 'text': 'Also, most tutorials online are based on Linux commands.', 'start': 1699.501, 'duration': 3.061}, {'end': 1705.944, 'text': "So if you don't understand these basic commands, you're not gonna get far.", 'start': 1702.902, 'duration': 3.042}, {'end': 1709.065, 'text': 'In my opinion, learning Linux is like learning English.', 'start': 1706.484, 'duration': 2.581}, {'end': 1711.586, 'text': 'I think everybody should know some English these days.', 'start': 1709.425, 'duration': 2.161}, {'end': 1715.207, 'text': "You don't need to speak it or write a book in it, but you need to understand it.", 'start': 1711.866, 'duration': 3.341}, {'end': 1718.769, 'text': "So unless you're a power Linux user, do not skip this section.", 'start': 1715.628, 'duration': 3.141}], 'summary': 'Understanding basic linux commands is crucial for troubleshooting and productivity, like learning english for everyone.', 'duration': 25.391, 'max_score': 1693.378, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI1693378.jpg'}, {'end': 1766.097, 'src': 'embed', 'start': 1741.26, 'weight': 0, 'content': [{'end': 1747.763, 'text': 'And for this reason, many individuals and communities have created their own version of Linux called Linux distributions.', 'start': 1741.26, 'duration': 6.503}, {'end': 1754.907, 'text': 'Each of these distributions is made to fit specialized needs like running servers, desktop computers, mobile phones, and so on.', 'start': 1748.244, 'duration': 6.663}, {'end': 1759.531, 'text': 'So we have Ubuntu, which is one of the most popular Linux distributions.', 'start': 1755.587, 'duration': 3.944}, {'end': 1763.795, 'text': 'We also have Debian, Alpine, which we briefly talked about.', 'start': 1759.971, 'duration': 3.824}, {'end': 1766.097, 'text': "It's a very small Linux distribution.", 'start': 1763.995, 'duration': 2.102}], 'summary': 'Various linux distributions cater to different needs, such as ubuntu, debian, and alpine, with ubuntu being one of the most popular.', 'duration': 24.837, 'max_score': 1741.26, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI1741260.jpg'}, {'end': 1854.516, 'src': 'embed', 'start': 1829.253, 'weight': 2, 'content': [{'end': 1837.462, 'text': "So here in the terminal, instead of running docker pull ubuntu, I'm going to run docker run ubuntu.", 'start': 1829.253, 'duration': 8.209}, {'end': 1842.887, 'text': 'Now, if you have this image locally, docker is going to store the container with this image.', 'start': 1838.183, 'duration': 4.704}, {'end': 1846.81, 'text': "otherwise it's going to pull this image behind the scene and then store the container.", 'start': 1842.887, 'duration': 3.923}, {'end': 1854.516, 'text': "So, take a look, see, docker is unable to find this image locally, and now it's pulling it from docker hub.", 'start': 1847.17, 'duration': 7.346}], 'summary': "Using 'docker run ubuntu' to store container locally or pull from docker hub.", 'duration': 25.263, 'max_score': 1829.253, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI1829253.jpg'}, {'end': 2090.753, 'src': 'embed', 'start': 2064.346, 'weight': 4, 'content': [{'end': 2069.911, 'text': 'using the up and down arrows, we can go through the commands we have executed so far.', 'start': 2064.346, 'duration': 5.565}, {'end': 2071.473, 'text': 'so this is a pretty useful shortcut.', 'start': 2069.911, 'duration': 1.562}, {'end': 2074.755, 'text': "you need to know, because you don't want to type these commands manually all the time.", 'start': 2071.473, 'duration': 3.282}, {'end': 2079.94, 'text': 'Also, using the history command, we can see all the commands we have executed lately.', 'start': 2075.757, 'duration': 4.183}, {'end': 2084.905, 'text': 'So, take a look, so earlier we used who am I, we also used echo and so on.', 'start': 2080.301, 'duration': 4.604}, {'end': 2090.753, 'text': 'Now we can replay any of these commands by typing an exclamation mark, followed by the command number.', 'start': 2085.706, 'duration': 5.047}], 'summary': "Using up and down arrows to navigate through executed commands, and accessing command history with the 'history' command provides efficiency and convenience in command-line operations.", 'duration': 26.407, 'max_score': 2064.346, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI2064346.jpg'}], 'start': 1670.609, 'title': 'Learning linux basics', 'summary': 'Emphasizes the importance of learning basic linux commands for troubleshooting and productivity, highlighting the prevalence of linux in tutorials and as the foundation for docker, and demonstrates running a ubuntu container using docker. it also highlights key differences between linux and windows, and the usage of package management using apt with subcommands like list, search, install, and remove, emphasizing the importance of updating the package database before installation.', 'chapters': [{'end': 2024.528, 'start': 1670.609, 'title': 'Learning linux basics for productivity', 'summary': 'Emphasizes the importance of learning basic linux commands for troubleshooting and productivity, highlighting the prevalence of linux in tutorials and as the foundation for docker. it also provides an introduction to ubuntu, one of the most popular linux distributions, and demonstrates the process of running a ubuntu container using docker.', 'duration': 353.919, 'highlights': ['The importance of learning basic Linux commands for productivity and troubleshooting is emphasized, as it serves as the foundation for Docker and is prevalent in online tutorials.', 'Ubuntu is introduced as one of the most popular Linux distributions, with over 10 million downloads of its official image, providing users with specialized needs for running servers, desktop computers, and mobile phones.', 'The demonstration of running a Ubuntu container using Docker is explained, including the command to pull the image, the process of storing the container locally, and starting an interactive container for executing commands.', 'The significance of understanding and using Linux is compared to learning English, emphasizing the widespread value of basic Linux knowledge in various contexts.', 'The overview of Linux distributions highlights the diverse range of specialized needs they cater to, with over a thousand distributions available, while also noting the similarities and potential differences in commands across distributions.']}, {'end': 2316.245, 'start': 2024.748, 'title': 'Linux basics & package management', 'summary': 'Highlights key differences between linux and windows, including the use of forward slash and backslash for file separation, case sensitivity, and the usage of up and down arrows for command recall, history command, and package management using apt with subcommands like list, search, install, and remove, emphasizing the importance of updating the package database before installation.', 'duration': 291.497, 'highlights': ['Linux uses forward slash while Windows uses backslash for file separation, and is case sensitive, affecting command execution and file referencing.', 'The use of up and down arrows allows for quick command recall, and the history command displays the executed commands.', 'Package management in Ubuntu involves using the apt package manager, with subcommands like list, search, install, reinstall, and remove, emphasizing the importance of updating the package database before installation.']}], 'duration': 645.636, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI1670609.jpg', 'highlights': ['Ubuntu is one of the most popular Linux distributions, with over 10 million downloads of its official image.', 'The importance of learning basic Linux commands for productivity and troubleshooting is emphasized, as it serves as the foundation for Docker and is prevalent in online tutorials.', 'The demonstration of running a Ubuntu container using Docker is explained, including the command to pull the image, the process of storing the container locally, and starting an interactive container for executing commands.', 'The significance of understanding and using Linux is compared to learning English, emphasizing the widespread value of basic Linux knowledge in various contexts.', 'The use of up and down arrows allows for quick command recall, and the history command displays the executed commands.']}, {'end': 3357.537, 'segs': [{'end': 2366.462, 'src': 'embed', 'start': 2323.157, 'weight': 0, 'content': [{'end': 2329.602, 'text': 'So in Linux, just like Windows, our files and directories are organized in a tree, in a hierarchical structure.', 'start': 2323.157, 'duration': 6.445}, {'end': 2337.688, 'text': 'So in Windows we have a structure like this, with C drive on top of the hierarchy, then below that we have directories like program files,', 'start': 2330.142, 'duration': 7.546}, {'end': 2338.409, 'text': 'Windows and so on.', 'start': 2337.688, 'duration': 0.721}, {'end': 2342.271, 'text': 'In Linux, we have the root directory on top of the hierarchy.', 'start': 2339.249, 'duration': 3.022}, {'end': 2344.872, 'text': 'Below that, we have a bunch of standard directories.', 'start': 2342.851, 'duration': 2.021}, {'end': 2349.173, 'text': 'For example, we have bin, which includes binaries or programs.', 'start': 2345.232, 'duration': 3.941}, {'end': 2352.855, 'text': 'We have boot, which includes all the files related to booting.', 'start': 2349.614, 'duration': 3.241}, {'end': 2354.196, 'text': 'Then we have dev.', 'start': 2353.395, 'duration': 0.801}, {'end': 2357.417, 'text': 'The first time I saw this, I thought, this is short for development.', 'start': 2354.596, 'duration': 2.821}, {'end': 2358.057, 'text': "It's not.", 'start': 2357.697, 'duration': 0.36}, {'end': 2359.478, 'text': "It's short for devices.", 'start': 2358.457, 'duration': 1.021}, {'end': 2366.462, 'text': 'So in Linux, everything is a file, including devices, directories, network sockets, pipes, and so on.', 'start': 2360.098, 'duration': 6.364}], 'summary': 'Linux organizes files in a hierarchical tree structure with root directory on top; includes standard directories like bin, boot, and dev.', 'duration': 43.305, 'max_score': 2323.157, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI2323157.jpg'}, {'end': 2449.672, 'src': 'embed', 'start': 2423.892, 'weight': 2, 'content': [{'end': 2428.434, 'text': 'I just listed them here, so as we go through the course, these directories look familiar to you.', 'start': 2423.892, 'duration': 4.542}, {'end': 2429.134, 'text': "That's all.", 'start': 2428.794, 'duration': 0.34}, {'end': 2434.556, 'text': "Next, I'm going to show you how to navigate the file system, and there you will see these directories one more time.", 'start': 2429.794, 'duration': 4.762}, {'end': 2443.489, 'text': "Let's see how we can navigate the Linux file system.", 'start': 2441.448, 'duration': 2.041}, {'end': 2449.672, 'text': "So the first command we're going to talk about is pwd, which is short for print working directory.", 'start': 2444.029, 'duration': 5.643}], 'summary': 'Course will cover directory navigation in linux. first command is pwd.', 'duration': 25.78, 'max_score': 2423.892, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI2423892.jpg'}, {'end': 2566.319, 'src': 'embed', 'start': 2537.967, 'weight': 4, 'content': [{'end': 2543.709, 'text': "So let's go to a directory starting with e, now we can press tab to get auto completion, beautiful.", 'start': 2537.967, 'duration': 5.742}, {'end': 2547.21, 'text': "Now let's go to a directory starting with a.", 'start': 2544.289, 'duration': 2.921}, {'end': 2552.391, 'text': 'Now if you press tab, nothing happens, because we have multiple directories starting with a.', 'start': 2547.21, 'duration': 5.181}, {'end': 2561.176, 'text': 'So we have to press tab one more time, great, so you have three entries, three directories add user.conf, alternatives and apt.', 'start': 2552.391, 'duration': 8.785}, {'end': 2566.319, 'text': "So let's type the second letter p and then press tab.", 'start': 2561.816, 'duration': 4.503}], 'summary': 'Navigating directories using tab for auto-completion, encountering multiple options, and accessing specific directories.', 'duration': 28.352, 'max_score': 2537.967, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI2537967.jpg'}, {'end': 2779.444, 'src': 'embed', 'start': 2726.75, 'weight': 5, 'content': [{'end': 2728.351, 'text': "Now, let's say we want to rename this directory.", 'start': 2726.75, 'duration': 1.601}, {'end': 2729.191, 'text': 'How do we do that?', 'start': 2728.691, 'duration': 0.5}, {'end': 2731.747, 'text': 'use the move command.', 'start': 2730.586, 'duration': 1.161}, {'end': 2735.428, 'text': 'with this we can rename files and folders or move them somewhere else.', 'start': 2731.747, 'duration': 3.681}, {'end': 2741.551, 'text': 'so we can move or rename test to docker.', 'start': 2735.428, 'duration': 6.123}, {'end': 2742.752, 'text': 'all right, beautiful.', 'start': 2741.551, 'duration': 1.201}, {'end': 2747.914, 'text': "now let's go in this directory now to create a new file.", 'start': 2742.752, 'duration': 5.162}, {'end': 2751.336, 'text': 'we use the touch command so we can create hello.txt.', 'start': 2747.914, 'duration': 3.422}, {'end': 2754.973, 'text': 'look, we have this new file here.', 'start': 2753.072, 'duration': 1.901}, {'end': 2756.193, 'text': 'this is a new empty file.', 'start': 2754.973, 'duration': 1.22}, {'end': 2760.095, 'text': "In the next lesson I will show you how to edit files, so for now don't worry about it.", 'start': 2756.634, 'duration': 3.461}, {'end': 2765.038, 'text': 'Also, using the touch command, we can create multiple files in one go.', 'start': 2760.736, 'duration': 4.302}, {'end': 2772.401, 'text': 'So we can create file 1, file 2, and file 3, now take a look, beautiful.', 'start': 2765.638, 'duration': 6.763}, {'end': 2773.822, 'text': "Now I've got a question for you.", 'start': 2772.921, 'duration': 0.901}, {'end': 2779.444, 'text': 'How do we list those files with a single file per line? Do you remember? We type ls-1.', 'start': 2774.422, 'duration': 5.022}], 'summary': 'Learned how to rename, move, and create files in a directory using commands like move, touch, and ls-1.', 'duration': 52.694, 'max_score': 2726.75, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI2726750.jpg'}, {'end': 3008.183, 'src': 'embed', 'start': 2984.494, 'weight': 8, 'content': [{'end': 2992.825, 'text': "Now, cat is useful if our file is short and fits on one page, but if you're dealing with a long file, it's better to use the more command.", 'start': 2984.494, 'duration': 8.331}, {'end': 2994.187, 'text': 'Let me give you an example.', 'start': 2993.246, 'duration': 0.941}, {'end': 2998.312, 'text': "So, I'm going to use cat to show the content of this file.", 'start': 2994.327, 'duration': 3.985}, {'end': 3008.183, 'text': 'Slash etsy slash adduser.conf this is a really long file, so if I scroll up, look, we have a lot of text.', 'start': 2998.713, 'duration': 9.47}], 'summary': "Use 'more' command for long files to avoid scrolling. example: cat /etc/adduser.conf", 'duration': 23.689, 'max_score': 2984.494, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI2984494.jpg'}, {'end': 3158.864, 'src': 'embed', 'start': 3131.599, 'weight': 7, 'content': [{'end': 3135.705, 'text': 'and head and tail to view the first few or the last few lines of a file.', 'start': 3131.599, 'duration': 4.106}, {'end': 3146.874, 'text': 'One of the important concepts in Linux is the concept of standard input and output.', 'start': 3142.611, 'duration': 4.263}, {'end': 3151.858, 'text': 'So standard input represents the keyboard, and standard output represents the screen.', 'start': 3147.335, 'duration': 4.523}, {'end': 3155.361, 'text': 'But we can always change the source of the input or the output.', 'start': 3152.299, 'duration': 3.062}, {'end': 3157.122, 'text': 'This is called redirection.', 'start': 3155.601, 'duration': 1.521}, {'end': 3158.864, 'text': 'Let me show you using a few examples.', 'start': 3157.503, 'duration': 1.361}], 'summary': 'Linux: introduces concepts of standard input, output, and redirection.', 'duration': 27.265, 'max_score': 3131.599, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI3131599.jpg'}, {'end': 3353.592, 'src': 'embed', 'start': 3323.877, 'weight': 9, 'content': [{'end': 3329.999, 'text': "If you're serious about learning Docker, I actually have a complete Docker course on my coding school, codewithmosh.com.", 'start': 3323.877, 'duration': 6.122}, {'end': 3334.219, 'text': "This tutorial you've been watching is a cut down version of the complete course.", 'start': 3330.359, 'duration': 3.86}, {'end': 3341.001, 'text': 'In the full course you will learn how to run and deploy a full stack application with a front end, back end, and a database.', 'start': 3334.699, 'duration': 6.302}, {'end': 3346.802, 'text': "Our application also includes automated tests, so it's a great real world scenario for learning Docker.", 'start': 3341.421, 'duration': 5.381}, {'end': 3353.592, 'text': 'Just like my other courses, you will also receive a 30-day money-back guarantee and a certificate of completion you can add to your resume.', 'start': 3347.262, 'duration': 6.33}], 'summary': 'Complete docker course available at codewithmosh.com, includes full stack application and automated tests.', 'duration': 29.715, 'max_score': 3323.877, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI3323877.jpg'}], 'start': 2323.157, 'title': 'Linux file system and commands', 'summary': 'Provides an overview of the linux file system, covering its hierarchical structure and standard directories. it also delves into basic file system navigation and manipulation, including commands like cd, ls, and mkdir. furthermore, it introduces commands for viewing and manipulating file contents, along with a brief mention of docker and its comprehensive course available on codewithmosh.com.', 'chapters': [{'end': 2496.379, 'start': 2323.157, 'title': 'Linux file system overview', 'summary': 'Provides an overview of the linux file system, including its hierarchical structure with the root directory at the top, standard directories such as bin, boot, dev, etc., and commands for navigating and listing files. the chapter also highlights the concept that in linux, everything is a file.', 'duration': 173.222, 'highlights': ['Linux file system is organized in a hierarchical structure with the root directory at the top, followed by standard directories like bin, boot, dev, etc.', 'In Linux, everything is considered a file, including devices, directories, network sockets, and pipes.', "Commands for navigating and listing files in Linux include 'pwd' (print working directory) and 'ls' (list), with options like -1 for displaying one item per line and -l for a long listing with more details."]}, {'end': 2961.142, 'start': 2497.019, 'title': 'Linux file system basics', 'summary': 'Covers the basics of navigating the file system, manipulating files and directories, and viewing and editing files in linux. it includes commands like cd, tab for auto-completion, ls, pwd, mkdir, touch, move, rename, rm, and installation of nano text editor using apt. users are encouraged to practice creating, renaming, and removing files and directories.', 'duration': 464.123, 'highlights': ['The chapter covers the basics of navigating the file system, manipulating files and directories, and viewing and editing files in Linux.', 'Users are encouraged to practice creating, renaming, and removing files and directories.', 'The CD command is used to change the current directory, and the tab key can be used for auto-completion while typing paths.', 'The move command is used to rename files and folders or move them to a different directory.', 'The touch command is used to create new files, and multiple files can be created at once using this command.', 'Installation of nano text editor using apt install nano command.']}, {'end': 3357.537, 'start': 2961.782, 'title': 'Working with linux commands', 'summary': 'Introduces the commands cat, more, less, head, tail, and redirection in linux, emphasizing their use in viewing and manipulating file contents. it also discusses the concept of standard input and output, along with redirection operators. additionally, it briefly touches on docker and its comprehensive course available on codewithmosh.com.', 'duration': 395.755, 'highlights': ['The chapter introduces the commands cat, more, less, head, tail, and redirection in Linux.', 'Emphasizes the use of commands like cat, more, less, head, and tail for viewing and manipulating file contents.', 'Discusses the concept of standard input and output, along with redirection operators.', 'Briefly touches on Docker and its comprehensive course available on codewithmosh.com.']}], 'duration': 1034.38, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pTFZFxd4hOI/pics/pTFZFxd4hOI2323157.jpg', 'highlights': ['Linux file system is organized in a hierarchical structure with the root directory at the top, followed by standard directories like bin, boot, dev, etc.', 'In Linux, everything is considered a file, including devices, directories, network sockets, and pipes.', "Commands for navigating and listing files in Linux include 'pwd' (print working directory) and 'ls' (list), with options like -1 for displaying one item per line and -l for a long listing with more details.", 'The chapter covers the basics of navigating the file system, manipulating files and directories, and viewing and editing files in Linux.', 'The CD command is used to change the current directory, and the tab key can be used for auto-completion while typing paths.', 'The move command is used to rename files and folders or move them to a different directory.', 'The touch command is used to create new files, and multiple files can be created at once using this command.', 'The chapter introduces the commands cat, more, less, head, tail, and redirection in Linux.', 'Emphasizes the use of commands like cat, more, less, head, and tail for viewing and manipulating file contents.', 'Briefly touches on Docker and its comprehensive course available on codewithmosh.com.']}], 'highlights': ['Covers practical techniques for running and deploying full stack applications with a front end, back end, and a database.', 'Docker allows applications to run consistently on different machines, ensuring cross-environment functionality.', 'The size of the Docker image built using Alpine Linux for a Node.js application is 112 megabytes.', 'The course covers everything from basics to advanced concepts, enabling learners to use Docker proficiently as part of their software development workflow.', 'The process involves downloading the latest Linux kernel from microsoft.com, running the msi file, and restarting the computer.', 'The ability to package and run applications virtually anywhere, and the usage of docker hub as a storage for Docker images.', 'The importance of learning basic Linux commands for productivity and troubleshooting is emphasized, as it serves as the foundation for Docker and is prevalent in online tutorials.', 'Linux file system is organized in a hierarchical structure with the root directory at the top, followed by standard directories like bin, boot, dev, etc.', 'The course requires no prior Docker knowledge but at least 3 months of programming experience.', 'The process of publishing the Docker image to Docker Hub and running it on different machines is explained.']}