title
Dockerizing An Application | Docker Tutorial For Beginners | DevOps Tutorial Video | Simplilearn

description
" 🔥 IIT Guwahati Professional Certificate Program In Cloud Computing And DevOps (India Only): https://www.simplilearn.com/professional-certificate-program-cloud-computing-devops?utm_campaign=25AugustTubebuddyExpCloud&DevopsIITG&utm_medium=DescriptionFF&utm_source=youtube 🔥DevOps Engineer Masters Program (Discount Code - YTBE15): https://www.simplilearn.com/devops-engineer-masters-program-certification-training?utm_campaign=SCE-DevopsMaster&utm_medium=DescriptionFF&utm_source=youtube 🔥Post Graduate Program In DevOps: https://www.simplilearn.com/pgp-devops-certification-training-course?utm_campaign=DockerizingAngApp-rNsQGvt9v4k&utm_medium=DescriptionFF&utm_source=youtube In this Simplilearn video on Dockerizing an application tutorial video we will learn how to eliminate virtual machines by collaborating with co-workers. Not only that, but the video also tells you how to implement all the Docker components together in order to get a high-level solution in the organization. Operators use Docker to run and manage apps side-by-side in isolated containers. This Dockerizing application Tutorial will explain the topics listed below: 1. What is Docker ( 1:20 ) 2. Docker Images / Docker Containers ( 3:05 ) 3. Docker Workflow ( 6:56 ) 4. Docker Pipeline ( 7:37 ) 5. Docker files ( 8:38 ) 6. Dockerizing Angular Application Demo ( 9:43 ) What is Docker? Docker is basically a container engine and it allows you to run your applications inside containers. Until now we have been running applications on virtual machines. Every virtual machine used to be the base of our application but now with the advent of Docker and containerization technologies each application is run in a container like logical space. What is a container? So define a container, it is a logical grouping of all the binaries and all the dependencies that each application requires then bundling into a single whole and running it on top of a Docker Engine. #DevOpsTrainingVideos #DevOpsPractitioner #DevOpsTutorialsForBeginners #DevOpsPractitioner #DevOpsCertification #DevOpsCourse DevOps Tutorial Playlist: https://www.youtube.com/playlist?list=PLEiEAq2VkUUJS6zkGgXeWw9l32EwRoYdR DevOps Articles: https://www.simplilearn.com/devops-revolution-article?utm_campaign=Dockerizing-Angular-Application-rNsQGvt9v4k&utm_medium=Tutorials&utm_source=youtube ➡️About Post Graduate Program In DevOps DevOps training course will bring out the scientist in you. You'll learn how to formalize and document development processes and create a self-documenting system. DevOps certification course will also cover advanced tools like Puppet, SaltStack, and Ansible that help self-governance and automated management at scale. ✅Key features - Caltech CTME Post Graduate Certificate - Enrolment in Simplilearn’s JobAssist - Receive up to 25 CEUs from Caltech CTME upon course completion - Simplilearn's JobAssist helps you get noticed by top hiring companies - Attend Masterclasses from Caltech CTME instructors - Live virtual classes led by industry experts, hands-on projects and integrated labs - Online Convocation by Caltech CTME Program Director - 20+ real-life projects on integrated labs - Capstone project in 3 domains - Caltech CTME Circle Membership ✅Skills Covered - DevOps Methodology - Continuous Integration - Continuous Delivery - Configuration Management - Containerization - DevOps on Cloud - Source Control - Deployment Automation - Cloud Platforms 👉Learn more at: https://www.simplilearn.com/cloud-computing/devops-practitioner-certification-training?utm_campaign=DockerizingAngApp-rNsQGvt9v4k&utm_medium=Description&utm_source=youtube 🔥Free DevOps Training: https://www.simplilearn.com/learn-devops-basics-skillup?utm_campaign=DockerizingAngApp-rNsQGvt9v4k&utm_medium=Description&utm_source=youtube 🔥🔥 Interested in Attending Live Classes? Call Us: IN - 18002127688 / US - +18445327688 "

detail
{'title': 'Dockerizing An Application | Docker Tutorial For Beginners | DevOps Tutorial Video | Simplilearn', 'heatmap': [{'end': 1107.576, 'start': 1067.935, 'weight': 0.902}, {'end': 1165.602, 'start': 1130.248, 'weight': 0.776}, {'end': 1206.828, 'start': 1181.665, 'weight': 0.886}], 'summary': 'This tutorial covers the basics of docker, creating and optimizing docker files, utilizing nginx for angular applications, and the significance of docker in containerization technology and continuous delivery pipelines.', 'chapters': [{'end': 79.583, 'segs': [{'end': 79.583, 'src': 'embed', 'start': 32.613, 'weight': 0, 'content': [{'end': 34.855, 'text': 'After this session, you will understand three things.', 'start': 32.613, 'duration': 2.242}, {'end': 42.501, 'text': 'First, what is Docker and what is it used for? You will understand the basics of Docker and what problem Docker fixes.', 'start': 35.595, 'duration': 6.906}, {'end': 49.442, 'text': "Next, you'll learn how to write the Docker file, which you can think of as the recipe Docker uses to build your image.", 'start': 43.638, 'duration': 5.804}, {'end': 54.466, 'text': "In this session, we'll be using a multi-stage Docker file to build our application.", 'start': 50.383, 'duration': 4.083}, {'end': 61.351, 'text': 'Third, you will learn how to use an Nginx server to serve an Angular application inside a Docker container.', 'start': 55.487, 'duration': 5.864}, {'end': 64.913, 'text': 'To follow through the examples in this session,', 'start': 62.472, 'duration': 2.441}, {'end': 70.818, 'text': 'you should have an Angular application ready and the latest version of Docker installed on your workstation.', 'start': 64.913, 'duration': 5.905}, {'end': 76.062, 'text': 'You can install Docker by following instructions on docker.com.', 'start': 72.301, 'duration': 3.761}, {'end': 79.583, 'text': "First, let's look at what Docker is.", 'start': 77.583, 'duration': 2}], 'summary': 'Learn docker basics, write docker file, use nginx server for angular app.', 'duration': 46.97, 'max_score': 32.613, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rNsQGvt9v4k/pics/rNsQGvt9v4k32613.jpg'}], 'start': 7.998, 'title': 'Dockerizing an angular app', 'summary': 'Provides a guide on basics of docker, writing a docker file and using nginx to serve an angular application inside a docker container.', 'chapters': [{'end': 79.583, 'start': 7.998, 'title': 'Dockerizing an angular app', 'summary': 'Provides a guide on dockerizing an angular application, covering the basics of docker, writing a docker file, and using nginx to serve the application inside a docker container.', 'duration': 71.585, 'highlights': ["The chapter covers the basics of Docker and its usage, explaining the problem Docker solves. Miiro Juuso will explain the basics of Docker and the problem it fixes, providing a foundational understanding of Docker's purpose.", 'The session includes guidance on writing a Docker file, akin to a recipe used by Docker to build an image. The audience will learn how to write a Docker file, crucial for building the Docker image, with a focus on using a multi-stage Docker file for the application.', 'Using Nginx to serve an Angular application within a Docker container is demonstrated. The chapter illustrates how to use an Nginx server to serve an Angular application within a Docker container, offering practical insights for implementation.']}], 'duration': 71.585, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rNsQGvt9v4k/pics/rNsQGvt9v4k7998.jpg', 'highlights': ['The chapter covers the basics of Docker and its usage, explaining the problem Docker solves.', 'The session includes guidance on writing a Docker file, akin to a recipe used by Docker to build an image.', 'Using Nginx to serve an Angular application within a Docker container is demonstrated.']}, {'end': 332.479, 'segs': [{'end': 128.482, 'src': 'embed', 'start': 80.443, 'weight': 0, 'content': [{'end': 88.186, 'text': 'Docker is the most popular containerization technology, and it has quickly become the de facto standard when talking about containers.', 'start': 80.443, 'duration': 7.743}, {'end': 98.069, 'text': 'Containerizing an application means packaging it and all its dependencies into a single, easily transportable and isolated container.', 'start': 89.426, 'duration': 8.643}, {'end': 104.417, 'text': 'This container will run in exactly the same fashion, regardless of the computer it is run on.', 'start': 99.076, 'duration': 5.341}, {'end': 111.719, 'text': 'By providing this layer of consistency, Docker fixes the traditional, but it works on my machine, problem.', 'start': 105.577, 'duration': 6.142}, {'end': 120.06, 'text': "Instead of distributing just our application, we're distributing a full runtime environment along with our application.", 'start': 113.119, 'duration': 6.941}, {'end': 128.482, 'text': 'While not exactly correct, it might help you to think of a Docker container as a lightweight virtual machine inside your computer.', 'start': 121.2, 'duration': 7.282}], 'summary': 'Docker is the leading containerization technology, ensuring consistent application runtime across different computers.', 'duration': 48.039, 'max_score': 80.443, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rNsQGvt9v4k/pics/rNsQGvt9v4k80443.jpg'}, {'end': 185.005, 'src': 'embed', 'start': 154.704, 'weight': 1, 'content': [{'end': 157.445, 'text': 'making it behave differently on different environments.', 'start': 154.704, 'duration': 2.741}, {'end': 167.356, 'text': "The beauty of Docker is that if you build your application into a container image and transfer the same container image to your colleague's computer,", 'start': 158.752, 'duration': 8.604}, {'end': 171.818, 'text': 'you can be sure that the application will function identically on both computers.', 'start': 167.356, 'duration': 4.462}, {'end': 177.301, 'text': 'This is because the container includes all dependencies for the application inside it.', 'start': 172.859, 'duration': 4.442}, {'end': 185.005, 'text': "On the other hand, a Docker container should not have any dependencies to the host it's running on, apart from Docker itself.", 'start': 178.602, 'duration': 6.403}], 'summary': 'Docker ensures consistent application functionality across different computers due to self-contained dependencies.', 'duration': 30.301, 'max_score': 154.704, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rNsQGvt9v4k/pics/rNsQGvt9v4k154704.jpg'}, {'end': 281.227, 'src': 'embed', 'start': 202.802, 'weight': 3, 'content': [{'end': 208.988, 'text': 'The metadata includes things like the name or tag of the image and instructions for Docker,', 'start': 202.802, 'duration': 6.186}, {'end': 212.291, 'text': 'like what command to run by default when the image is started.', 'start': 208.988, 'duration': 3.303}, {'end': 220.114, 'text': 'While the official Docker documentation is a bit vague about the meaning of names and tags, you should learn the basics of it.', 'start': 213.53, 'duration': 6.584}, {'end': 223.916, 'text': 'Every Docker image has at least one tag.', 'start': 221.455, 'duration': 2.461}, {'end': 228.479, 'text': 'And in fact, the same Docker image can have multiple tags pointing to it.', 'start': 224.417, 'duration': 4.062}, {'end': 234.923, 'text': 'Every image tag has a name part and a version part separated by a colon.', 'start': 230.04, 'duration': 4.883}, {'end': 242.428, 'text': 'For example, the NGINX image has multiple tags representing different versions and different flavors of the image.', 'start': 235.884, 'duration': 6.544}, {'end': 248.69, 'text': "There's a special version tag called latest, which points to the latest version of the image.", 'start': 243.885, 'duration': 4.805}, {'end': 255.458, 'text': 'All Docker commands default to using the latest version tag, if no other version tag is explicitly defined.', 'start': 249.612, 'duration': 5.846}, {'end': 264.829, 'text': 'When you build an image on your local machine, or for example a build server, you can upload the image into a Docker registry.', 'start': 257.641, 'duration': 7.188}, {'end': 273.705, 'text': 'When you configure other machines to use the same Docker registry, you can download the same image to as many other machines as you like.', 'start': 266.343, 'duration': 7.362}, {'end': 281.227, 'text': 'There is an official Docker registry called the Docker Hub, and the model is the same as for example GitHub.', 'start': 274.685, 'duration': 6.542}], 'summary': 'Docker image tags include names, versions, and can be uploaded to docker hub for sharing.', 'duration': 78.425, 'max_score': 202.802, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rNsQGvt9v4k/pics/rNsQGvt9v4k202802.jpg'}, {'end': 340.708, 'src': 'embed', 'start': 309.301, 'weight': 5, 'content': [{'end': 314.345, 'text': "My advice is that unless you're planning on hosting a very large number of images,", 'start': 309.301, 'duration': 5.044}, {'end': 320.71, 'text': "it's absolutely worth the cost to spend a few dollars per month on a hosted Docker registry such as Docker Hub.", 'start': 314.345, 'duration': 6.365}, {'end': 328.656, 'text': 'Once your application ecosystem starts to build around Docker, the registry becomes a critical piece of infrastructure,', 'start': 321.831, 'duration': 6.825}, {'end': 332.479, 'text': 'and keeping it up and running can prove to be a substantial piece of work.', 'start': 328.656, 'duration': 3.823}, {'end': 340.708, 'text': 'When you build or download a Docker image to a computer and run it, it becomes a running container.', 'start': 334.724, 'duration': 5.984}], 'summary': 'Consider using a hosted docker registry, like docker hub, for managing docker images for efficient application ecosystem.', 'duration': 31.407, 'max_score': 309.301, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rNsQGvt9v4k/pics/rNsQGvt9v4k309301.jpg'}], 'start': 80.443, 'title': 'Docker and its significance', 'summary': 'Explores the significance of docker as a leading containerization technology, emphasizing its ability to package applications and dependencies into isolated, portable containers, ensuring consistent functionality across environments. it also discusses the importance of image tags, emphasizing the role of the latest tag, and the benefits of using a hosted docker registry like docker hub for commercial applications.', 'chapters': [{'end': 201.4, 'start': 80.443, 'title': 'Docker: containerization technology', 'summary': 'Explains the significance of docker as the leading containerization technology, emphasizing its ability to package applications and their dependencies into isolated, portable containers, ensuring consistent functionality across different environments and solving dependency management issues.', 'duration': 120.957, 'highlights': ['Docker ensures consistent functionality across different environments By packaging applications and their dependencies into isolated, portable containers, Docker guarantees that the application will function identically on different computers, solving the problem of behavior differences in various environments.', "Docker solves dependency management issues Docker addresses the common problem of dependency management in software delivery by including all dependencies for the application inside the container, ensuring that small differences in the version of external libraries do not affect the application's functionality.", 'Docker acts as a lightweight virtual machine inside the computer Although not technically accurate, thinking of a Docker container as a lightweight virtual machine inside the computer helps understand its role in providing a consistent runtime environment for applications.']}, {'end': 255.458, 'start': 202.802, 'title': 'Understanding docker image tags', 'summary': 'Explains the importance of image tags in docker, emphasizing that every image has at least one tag, and the latest tag points to the most recent version of the image.', 'duration': 52.656, 'highlights': ['Every Docker image has at least one tag, and the same image can have multiple tags pointing to it.', 'The latest tag points to the most recent version of the image, and all Docker commands default to using it if no other version tag is explicitly defined.', 'Image tags consist of a name part and a version part separated by a colon, and the NGINX image, for example, has multiple tags representing different versions and flavors.']}, {'end': 332.479, 'start': 257.641, 'title': 'Docker registry and image hosting', 'summary': 'Discusses the importance of docker registry, emphasizing the benefits of using a hosted docker registry like docker hub, particularly for commercial proprietary applications, and the potential challenges of maintaining a self-hosted docker registry.', 'duration': 74.838, 'highlights': ['You can store public images free of charge under your account, but you will need to pay to host private images, making it beneficial for open source projects but not for commercial proprietary applications.', "It's worth spending a few dollars per month on a hosted Docker registry such as Docker Hub, especially as the registry becomes a critical piece of infrastructure for application ecosystems.", 'When you configure other machines to use the same Docker registry, you can download the same image to as many other machines as you like, highlighting the scalability and flexibility of using a Docker registry.']}], 'duration': 252.036, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rNsQGvt9v4k/pics/rNsQGvt9v4k80443.jpg', 'highlights': ['Docker ensures consistent functionality across different environments by packaging applications and their dependencies into isolated, portable containers.', "Docker solves dependency management issues by including all dependencies for the application inside the container, ensuring that small differences in the version of external libraries do not affect the application's functionality.", 'Docker acts as a lightweight virtual machine inside the computer, providing a consistent runtime environment for applications.', 'Every Docker image has at least one tag, and the same image can have multiple tags pointing to it.', 'The latest tag points to the most recent version of the image, and all Docker commands default to using it if no other version tag is explicitly defined.', "It's worth spending a few dollars per month on a hosted Docker registry such as Docker Hub, especially as the registry becomes a critical piece of infrastructure for application ecosystems.", 'When you configure other machines to use the same Docker registry, you can download the same image to as many other machines as you like, highlighting the scalability and flexibility of using a Docker registry.']}, {'end': 479.928, 'segs': [{'end': 383.514, 'src': 'embed', 'start': 359.687, 'weight': 2, 'content': [{'end': 368.61, 'text': 'You can think of a container as a sandbox, where processes running inside the container do not have access to the host system or other containers,', 'start': 359.687, 'duration': 8.923}, {'end': 371.091, 'text': 'unless you explicitly specify otherwise.', 'start': 368.61, 'duration': 2.481}, {'end': 378.573, 'text': 'Note that the complete container runs around a single process created by the initial command used to start the container.', 'start': 372.131, 'duration': 6.442}, {'end': 383.514, 'text': 'If this process terminates for any reason, the container will stop.', 'start': 379.633, 'duration': 3.881}], 'summary': 'Containers act as sandboxes, isolating processes from host and other containers, running around a single process. if the process terminates, the container stops.', 'duration': 23.827, 'max_score': 359.687, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rNsQGvt9v4k/pics/rNsQGvt9v4k359687.jpg'}, {'end': 435.263, 'src': 'embed', 'start': 408.904, 'weight': 1, 'content': [{'end': 414.626, 'text': "But for the purposes of this session, we'll use the concept of just a single process per container.", 'start': 408.904, 'duration': 5.722}, {'end': 419.772, 'text': 'The basic workflow with Docker is as follows.', 'start': 417.11, 'duration': 2.662}, {'end': 427.258, 'text': 'First, you will build a Docker image either on your workstation or on a continuous integration server.', 'start': 421.053, 'duration': 6.205}, {'end': 435.263, 'text': 'Second, you will push this Docker image into a Docker registry to make it available for other computers.', 'start': 429.039, 'duration': 6.224}], 'summary': 'Docker uses single process per container. workflow: build image, push to registry.', 'duration': 26.359, 'max_score': 408.904, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rNsQGvt9v4k/pics/rNsQGvt9v4k408904.jpg'}, {'end': 490.895, 'src': 'embed', 'start': 457.543, 'weight': 0, 'content': [{'end': 464.805, 'text': 'In software delivery environments that embrace continuous delivery, this workflow is often part of a fully automated pipeline.', 'start': 457.543, 'duration': 7.262}, {'end': 479.928, 'text': 'A pipeline like this can trigger from committing a piece of code into a version control system and thus automatically deploy a new version of your application into a testing or even production environment whenever you change your application code.', 'start': 465.959, 'duration': 13.969}, {'end': 490.895, 'text': "As we discussed earlier, a container is isolated from the machine it's running on as well as any other containers running on the same machine,", 'start': 482.129, 'duration': 8.766}], 'summary': 'Continuous delivery automates deployment triggered by code commits.', 'duration': 33.352, 'max_score': 457.543, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rNsQGvt9v4k/pics/rNsQGvt9v4k457543.jpg'}], 'start': 334.724, 'title': 'Docker container workflow', 'summary': 'Explains the concept of running containers in docker, highlighting the workflow of building and running docker images, and the use of containers in continuous delivery pipelines.', 'chapters': [{'end': 479.928, 'start': 334.724, 'title': 'Docker container workflow', 'summary': 'Explains the concept of running containers in docker, highlighting the workflow of building and running docker images, and the use of containers in continuous delivery pipelines.', 'duration': 145.204, 'highlights': ['A container is like a sandbox where processes do not have access to the host system or other containers unless explicitly specified.', 'The Docker workflow involves building a Docker image, pushing it to a registry, and running it on a server accessible via the internet.', 'In continuous delivery environments, the Docker workflow is part of a fully automated pipeline triggered by code commits.']}], 'duration': 145.204, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rNsQGvt9v4k/pics/rNsQGvt9v4k334724.jpg', 'highlights': ['In continuous delivery environments, the Docker workflow is part of a fully automated pipeline triggered by code commits.', 'The Docker workflow involves building a Docker image, pushing it to a registry, and running it on a server accessible via the internet.', 'A container is like a sandbox where processes do not have access to the host system or other containers unless explicitly specified.']}, {'end': 652.853, 'segs': [{'end': 506.711, 'src': 'embed', 'start': 482.129, 'weight': 3, 'content': [{'end': 490.895, 'text': "As we discussed earlier, a container is isolated from the machine it's running on as well as any other containers running on the same machine,", 'start': 482.129, 'duration': 8.766}, {'end': 494.097, 'text': 'unless you explicitly define connections between them.', 'start': 490.895, 'duration': 3.202}, {'end': 497.929, 'text': 'This is out of the scope of this session,', 'start': 495.728, 'duration': 2.201}, {'end': 503.87, 'text': 'but I recommend you spend some time after the session to learn about Docker networking and links between containers.', 'start': 497.929, 'duration': 5.941}, {'end': 506.711, 'text': 'In this session,', 'start': 505.871, 'duration': 0.84}], 'summary': 'Containers are isolated from the host machine and other containers, except with defined connections.', 'duration': 24.582, 'max_score': 482.129, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rNsQGvt9v4k/pics/rNsQGvt9v4k482129.jpg'}, {'end': 578.219, 'src': 'embed', 'start': 529.465, 'weight': 1, 'content': [{'end': 536.914, 'text': 'The basic function of a Docker file is to be a list of instructions that incrementally manipulate an existing Docker image.', 'start': 529.465, 'duration': 7.449}, {'end': 539.919, 'text': 'The word existing here is important.', 'start': 538.018, 'duration': 1.901}, {'end': 544.342, 'text': 'While you can theoretically build a Docker image from scratch,', 'start': 540.64, 'duration': 3.702}, {'end': 549.765, 'text': 'in most use cases you will actually be using another Docker image as the base for your new image.', 'start': 544.342, 'duration': 5.423}, {'end': 559.211, 'text': 'Many frameworks and open source projects publish their own Docker images, which can be used by developers to build images on top of.', 'start': 551.186, 'duration': 8.025}, {'end': 565.675, 'text': "In this session, we'll be using a new Docker feature called multistage builds.", 'start': 561.492, 'duration': 4.183}, {'end': 578.219, 'text': 'This feature is available from Docker version 17.05 forward and it allows you to use one base image for building our application and another base image for serving it.', 'start': 566.869, 'duration': 11.35}], 'summary': 'Docker files incrementally manipulate existing images; multistage builds use one base image for building and another for serving.', 'duration': 48.754, 'max_score': 529.465, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rNsQGvt9v4k/pics/rNsQGvt9v4k529465.jpg'}, {'end': 629.67, 'src': 'embed', 'start': 600.327, 'weight': 0, 'content': [{'end': 605.511, 'text': "If you're not quite there yet, check out the excellent Getting Started guide on the Angular website.", 'start': 600.327, 'duration': 5.184}, {'end': 611.956, 'text': 'Please note that the functionality of Angular varies wildly between major versions.', 'start': 607.492, 'duration': 4.464}, {'end': 618, 'text': 'However, the fundamental idea behind containerizing an Angular application is the same.', 'start': 612.776, 'duration': 5.224}, {'end': 623.367, 'text': 'Our Dockerfile is going to have two stages.', 'start': 620.586, 'duration': 2.781}, {'end': 629.67, 'text': "First, we'll need to build our Angular application using the ng build command.", 'start': 624.568, 'duration': 5.102}], 'summary': 'Angular website offers a helpful guide for containerizing applications with a two-stage dockerfile.', 'duration': 29.343, 'max_score': 600.327, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rNsQGvt9v4k/pics/rNsQGvt9v4k600327.jpg'}], 'start': 482.129, 'title': 'Docker containerization and multistage builds for angular', 'summary': 'Covers the isolation of containers, building docker images with docker files, utilizing multistage builds for angular applications, and emphasizes understanding angular and its command-line interface.', 'chapters': [{'end': 652.853, 'start': 482.129, 'title': 'Docker containerization and multistage builds for angular', 'summary': 'Explains the isolation of containers, the process of building docker images with docker files, the use of multistage builds for angular applications, and the importance of understanding angular and its command-line interface.', 'duration': 170.724, 'highlights': ["Containers are isolated from the host machine and other containers, unless explicitly connected. Containers are isolated from the machine it's running on and other containers, unless explicit connections are defined. This emphasizes the fundamental isolation of containers in Docker.", 'Building Docker images is done with Docker files, which contain a recipe to tell Docker how to build an image. Docker images are built using Docker files, which contain a recipe to instruct Docker on building an image. This outlines the essential process of creating Docker images.', 'Multistage builds feature allows using one base image for building an application and another for serving it, which is beneficial for Angular applications. The multistage builds feature, available from Docker version 17.05 forward, enables the use of one base image for building an application and another for serving it, particularly advantageous for Angular applications.', "Understanding Angular and its command-line interface is crucial for containerizing an Angular application. It's important to have knowledge of Angular and its command-line interface for the process of containerizing an Angular application. This underlines the significance of understanding Angular for containerization purposes."]}], 'duration': 170.724, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rNsQGvt9v4k/pics/rNsQGvt9v4k482129.jpg', 'highlights': ['Understanding Angular and its command-line interface is crucial for containerizing an Angular application.', 'Multistage builds feature allows using one base image for building an application and another for serving it, which is beneficial for Angular applications.', 'Building Docker images is done with Docker files, which contain a recipe to tell Docker how to build an image.', 'Containers are isolated from the host machine and other containers, unless explicitly connected.']}, {'end': 980.178, 'segs': [{'end': 778.119, 'src': 'embed', 'start': 677.618, 'weight': 0, 'content': [{'end': 682.682, 'text': "And on the other hand, we wouldn't want a web server inside the image we're building our application in.", 'start': 677.618, 'duration': 5.064}, {'end': 693.711, 'text': 'Because the Angular CLI is distributed as a node package, we can use the official node Docker image as the base of our first builder stage.', 'start': 684.304, 'duration': 9.407}, {'end': 704.99, 'text': "Because Angular is a front-end framework, it doesn't come with a server-side component, other than the test server shipped with the Angular CLI.", 'start': 696.448, 'duration': 8.542}, {'end': 714.671, 'text': "Unfortunately, this test server isn't fit to be run on production, so we'll want to use something else to serve the Angular HTML files.", 'start': 706.31, 'duration': 8.361}, {'end': 722.533, 'text': 'In this example, we will use a robust web server called NGINX to serve the Angular application.', 'start': 716.632, 'duration': 5.901}, {'end': 729.439, 'text': 'Please note you could just as well be using a server application like Apache or Lighty instead.', 'start': 724.258, 'duration': 5.181}, {'end': 733.66, 'text': "I'm not going to be diving into the specifics of configuring Nginx.", 'start': 730.099, 'duration': 3.561}, {'end': 740.561, 'text': 'Nginx does come with good documentation, but more importantly, it also comes with an official Docker image.', 'start': 734.5, 'duration': 6.061}, {'end': 747.022, 'text': 'We can use the official Nginx Docker image as the base for our Angular application image.', 'start': 741.761, 'duration': 5.261}, {'end': 751.883, 'text': 'The good thing is that this makes our Docker file very short and simple.', 'start': 748.282, 'duration': 3.601}, {'end': 752.863, 'text': "Let's have a look.", 'start': 752.323, 'duration': 0.54}, {'end': 758.425, 'text': "This is the Docker file and it's divided into two stages.", 'start': 754.602, 'duration': 3.823}, {'end': 767.671, 'text': "The way the multistage build works in Docker is that we're actually creating multiple Docker images with a single Docker file,", 'start': 759.526, 'duration': 8.145}, {'end': 770.313, 'text': "but we're only keeping the last image we've defined.", 'start': 767.671, 'duration': 2.642}, {'end': 778.119, 'text': 'This allows us to build the application first and then copy the resulting build artifacts into the next Docker image.', 'start': 771.614, 'duration': 6.505}], 'summary': 'Use nginx as a web server for serving angular html files in a docker image.', 'duration': 100.501, 'max_score': 677.618, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rNsQGvt9v4k/pics/rNsQGvt9v4k677618.jpg'}], 'start': 653.753, 'title': 'Dockerizing angular application with nginx', 'summary': 'Discusses the process of dockerizing an angular application, including the necessity of angular cli installation, use of node docker image, and nginx as a web server, as well as optimizing the docker file for improved performance and reduced build time.', 'chapters': [{'end': 733.66, 'start': 653.753, 'title': 'Docker container for angular application', 'summary': 'Discusses the necessity of having the angular cli installed inside a docker container, the use of the official node docker image as the base of the first builder stage, and the decision to use nginx as a web server to serve the angular application.', 'duration': 79.907, 'highlights': ['We need the Angular CLI installed inside our Docker container for the ng build command to work.', 'The official node Docker image is used as the base of the first builder stage for Angular applications.', 'NGINX is used as a robust web server to serve the Angular application, instead of the test server shipped with the Angular CLI.']}, {'end': 980.178, 'start': 734.5, 'title': 'Optimizing docker image for angular with nginx', 'summary': 'Explains how to optimize a docker file for an angular application using the official nginx docker image, resulting in a small, efficient final docker image with improved performance and reduced build time.', 'duration': 245.678, 'highlights': ['Using the official Nginx Docker image as the base for the Angular application image simplifies the Docker file and results in a small and efficient final Docker image. This approach reduces the size of the final Docker image and minimizes the build time, resulting in improved performance and efficiency.', 'Implementing multistage build in Docker allows creating multiple images with a single Docker file, reducing the final Docker image size by excluding build time dependencies. Multistage build creates multiple Docker images with a single Docker file, but only retains the last image, resulting in a final image without build time dependencies, making it small and efficient.', 'The first stage utilizes the Node 8 image as the base, copying application code, running npm install, and packaging the Angular application. The first stage involves using the Node 8 image as the base, copying application code, running npm install to install node packages, and then running ng build to package the Angular application.', 'The second stage involves using the official Nginx Docker image, copying the application artifacts, and configuring Nginx to serve the contents of the directory. In the second stage, the official Nginx Docker image is used, the application artifacts are copied, and Nginx is configured to serve the contents of the directory, resulting in efficient serving of HTML files.']}], 'duration': 326.425, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rNsQGvt9v4k/pics/rNsQGvt9v4k653753.jpg', 'highlights': ['The first stage utilizes the Node 8 image as the base, copying application code, running npm install, and packaging the Angular application.', 'Using the official Nginx Docker image as the base for the Angular application image simplifies the Docker file and results in a small and efficient final Docker image.', 'The official node Docker image is used as the base of the first builder stage for Angular applications.', 'Implementing multistage build in Docker allows creating multiple images with a single Docker file, reducing the final Docker image size by excluding build time dependencies.', 'NGINX is used as a robust web server to serve the Angular application, instead of the test server shipped with the Angular CLI.']}, {'end': 1268.221, 'segs': [{'end': 1107.576, 'src': 'heatmap', 'start': 1004.702, 'weight': 0, 'content': [{'end': 1009.484, 'text': 'Make sure the name of the file is dockerfile, written as one word with a capital D.', 'start': 1004.702, 'duration': 4.782}, {'end': 1020.503, 'text': "Now that you've learned what a Dockerfile is and what one looks like for an Angular application,", 'start': 1014.761, 'duration': 5.742}, {'end': 1024.384, 'text': "let's learn how to use it to containerize an example Angular application.", 'start': 1020.503, 'duration': 3.881}, {'end': 1028.286, 'text': "For this, we'll be using the Docker command line interface.", 'start': 1025.385, 'duration': 2.901}, {'end': 1037.729, 'text': "After you've installed Docker on your workstation, you can use the Docker command line interface to build and run images.", 'start': 1030.867, 'duration': 6.862}, {'end': 1047.439, 'text': 'To find the command line shell on a Mac, click on the spotlight search icon on the top right corner of your screen and write terminal,', 'start': 1039.056, 'duration': 8.383}, {'end': 1048.499, 'text': 'followed by enter.', 'start': 1047.439, 'duration': 1.06}, {'end': 1055.542, 'text': "While the Docker command line provides many features, in this session we'll concentrate on two.", 'start': 1050.22, 'duration': 5.322}, {'end': 1058.383, 'text': 'The Docker build and the Docker run commands.', 'start': 1056.002, 'duration': 2.381}, {'end': 1062.544, 'text': "First, let's navigate to the directory with our Docker file.", 'start': 1059.103, 'duration': 3.441}, {'end': 1070.217, 'text': "The command we'll be using is docker build.", 'start': 1067.935, 'duration': 2.282}, {'end': 1077.543, 'text': 'We\'ll be giving the command the "-t argument", which defines the tag for the image that will be built.', 'start': 1071.598, 'duration': 5.945}, {'end': 1080.946, 'text': "For this, we'll be using the tag TestApp.", 'start': 1078.484, 'duration': 2.462}, {'end': 1086.45, 'text': 'The second argument for the docker build command is the build context.', 'start': 1082.767, 'duration': 3.683}, {'end': 1090.394, 'text': 'This is where Docker expects to find the Dockerfile.', 'start': 1087.771, 'duration': 2.623}, {'end': 1096.839, 'text': "We'll use a single dot to denote the current directory and press Enter to start building.", 'start': 1091.534, 'duration': 5.305}, {'end': 1107.576, 'text': 'You can see Docker runs through every directive in the Docker file as a step, outputting the directive and the output of running it.', 'start': 1100.134, 'duration': 7.442}], 'summary': 'Learn to containerize an angular app using docker command line interface.', 'duration': 81.748, 'max_score': 1004.702, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rNsQGvt9v4k/pics/rNsQGvt9v4k1004702.jpg'}, {'end': 1165.602, 'src': 'heatmap', 'start': 1130.248, 'weight': 0.776, 'content': [{'end': 1132.449, 'text': "Now, let's run the image we just built.", 'start': 1130.248, 'duration': 2.201}, {'end': 1136.492, 'text': "For this, we'll be using the docker run command.", 'start': 1133.85, 'duration': 2.642}, {'end': 1141.195, 'text': "We'll be giving the docker run command a few arguments.", 'start': 1137.612, 'duration': 3.583}, {'end': 1155.243, 'text': 'first "-i and "-t" to denote that we want to run the image in an interactive terminal that is running the container attached to our current terminal session so we can see the output and interact with the process.', 'start': 1141.195, 'duration': 14.048}, {'end': 1165.602, 'text': 'We\'ll also be using the "-p argument to map the port 8080 on our workstation to port 80 inside the container.', 'start': 1157.401, 'duration': 8.201}], 'summary': 'Run the image using docker run command with interactive terminal and port mapping.', 'duration': 35.354, 'max_score': 1130.248, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rNsQGvt9v4k/pics/rNsQGvt9v4k1130248.jpg'}, {'end': 1206.828, 'src': 'heatmap', 'start': 1172.084, 'weight': 4, 'content': [{'end': 1179.885, 'text': 'With this mapping, anyone connecting to port 8080 on our workstation will get forwarded to port 80 inside the container.', 'start': 1172.084, 'duration': 7.801}, {'end': 1185.306, 'text': 'Finally, the last argument is the tag of the image we want to run.', 'start': 1181.665, 'duration': 3.641}, {'end': 1188.699, 'text': "We're using test app colon latest.", 'start': 1186.598, 'duration': 2.101}, {'end': 1196.123, 'text': "Now that the container is running, let's use our web browser to navigate to port 8080 on our local machine.", 'start': 1189.459, 'duration': 6.664}, {'end': 1199.744, 'text': 'And we can see our Angular application being served.', 'start': 1197.203, 'duration': 2.541}, {'end': 1200.765, 'text': 'Well done.', 'start': 1200.305, 'duration': 0.46}, {'end': 1206.828, 'text': 'You can see that NGINX by default outputs all the requests in the standard output of the container.', 'start': 1201.385, 'duration': 5.443}], 'summary': 'Mapping port 8080 to 80, running test app, accessing angular app on port 8080.', 'duration': 28.681, 'max_score': 1172.084, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rNsQGvt9v4k/pics/rNsQGvt9v4k1172084.jpg'}, {'end': 1250.396, 'src': 'embed', 'start': 1224.491, 'weight': 2, 'content': [{'end': 1232.095, 'text': 'One, using Docker makes it easy to ensure that your application runs consistently on different workstations and servers.', 'start': 1224.491, 'duration': 7.604}, {'end': 1236.029, 'text': 'Secondly, Angular is a front-end framework.', 'start': 1233.388, 'duration': 2.641}, {'end': 1239.491, 'text': 'Angular needs a separate web server software for serving it.', 'start': 1236.55, 'duration': 2.941}, {'end': 1242.413, 'text': 'Nginx is a fast and robust choice.', 'start': 1240.512, 'duration': 1.901}, {'end': 1250.396, 'text': 'Finally, using multistage Docker files enables you to streamline your build process and create slim Docker images.', 'start': 1243.473, 'duration': 6.923}], 'summary': 'Docker ensures consistent app performance, angular needs separate web server, nginx is a fast choice, and multistage docker files streamline build process.', 'duration': 25.905, 'max_score': 1224.491, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rNsQGvt9v4k/pics/rNsQGvt9v4k1224491.jpg'}], 'start': 981.772, 'title': 'Dockerizing angular application', 'summary': "Covers creating a dockerfile for angular application, building and running the image using 'docker build' and 'docker run' commands, and dockerizing the application, with emphasis on using docker, nginx, and multistage docker files.", 'chapters': [{'end': 1141.195, 'start': 981.772, 'title': 'Dockerfile for angular application', 'summary': "Explains how to create a dockerfile for an angular application, including the process of building and running the image using docker command line interface, with an emphasis on using 'docker build' and 'docker run' commands.", 'duration': 159.423, 'highlights': ['The process of creating a Dockerfile for an Angular application is explained, emphasizing the importance of customizing the paths in the file accordingly.', "The steps for using Docker command line interface to build and run images are detailed, with a focus on 'docker build' and 'docker run' commands.", "The use of 'docker build' command with '-t' argument to define the tag for the image, and the specification of the build context using a single dot is highlighted.", "The output of the 'docker build' command, which runs through every directive in the Dockerfile as a step and successfully builds the image, is described.", "The process of running the image using the 'docker run' command and providing necessary arguments is explained."]}, {'end': 1268.221, 'start': 1141.195, 'title': 'Dockerize angular application', 'summary': 'Explains how to dockerize an angular application, including running the container, mapping ports, and the benefits of using docker, nginx, and multistage docker files.', 'duration': 127.026, 'highlights': ['Using Docker ensures application consistency on different workstations and servers, streamlining build process and creating slim Docker images (3 takeaways)', 'NGINX server listening on port 80, mapping port 8080 on the workstation to port 80 inside the container', 'NGINX by default outputs all requests in the standard output of the container', 'Angular application being served on port 8080 on the local machine', 'Pressing Ctrl-C in the terminal terminates the Nginx process and kills the container', "Subscribing to Simply Learn's channel for expert cloud computing, certification, and more such videos"]}], 'duration': 286.449, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rNsQGvt9v4k/pics/rNsQGvt9v4k981772.jpg', 'highlights': ['The process of creating a Dockerfile for an Angular application is explained, emphasizing the importance of customizing the paths in the file accordingly.', "The steps for using Docker command line interface to build and run images are detailed, with a focus on 'docker build' and 'docker run' commands.", 'Using Docker ensures application consistency on different workstations and servers, streamlining build process and creating slim Docker images (3 takeaways)', "The use of 'docker build' command with '-t' argument to define the tag for the image, and the specification of the build context using a single dot is highlighted.", 'NGINX server listening on port 80, mapping port 8080 on the workstation to port 80 inside the container']}], 'highlights': ['Docker ensures consistent functionality across different environments by packaging applications and their dependencies into isolated, portable containers.', 'In continuous delivery environments, the Docker workflow is part of a fully automated pipeline triggered by code commits.', 'Multistage builds feature allows using one base image for building an application and another for serving it, which is beneficial for Angular applications.', 'Using Nginx to serve an Angular application within a Docker container is demonstrated.', 'The process of creating a Dockerfile for an Angular application is explained, emphasizing the importance of customizing the paths in the file accordingly.']}