Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
15 views11 pages

Docker Lab

Docker is a software platform that enables the creation, deployment, and running of applications in lightweight containers that include all necessary dependencies. It simplifies development and deployment across various environments, enhances scalability, and improves resource utilization. Docker commands facilitate container management, and it can be integrated with CI/CD pipelines and cloud services for efficient application delivery.

Uploaded by

Naresh Kumar J
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views11 pages

Docker Lab

Docker is a software platform that enables the creation, deployment, and running of applications in lightweight containers that include all necessary dependencies. It simplifies development and deployment across various environments, enhances scalability, and improves resource utilization. Docker commands facilitate container management, and it can be integrated with CI/CD pipelines and cloud services for efficient application delivery.

Uploaded by

Naresh Kumar J
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 11

Docker is an OS virtualized software platform that allows IT organizations to easily

create, deploy, and run applications in Docker containers, which have all the
dependencies within them. The container itself is really just a very lightweight
package that has all the instructions and dependencies—such as frameworks,
libraries, and bins—within it.

Containers are a way to package software applications and their dependencies, allowing them to run
reliably and consistently in any environment. In Docker, containers are created from Docker images, which
are essentially snapshots of a software application and its environment at a specific point in time.

Docker containers provide a lightweight and portable way to package and run applications, allowing
developers to easily deploy their software on any infrastructure. They are isolated from the host system
and other containers, which helps to ensure that they run consistently regardless of the underlying
infrastructure.

In Docker, containers are managed using the Docker CLI (command line interface) or through a graphical
user interface. Developers can use Docker to create, start, stop, and manage containers, as well as to
create and manage Docker images.

Overall, Docker containers provide a powerful tool for software development and deployment, enabling
developers to build, test, and deploy their applications with ease and efficiency.
Dockeris a software platform that allows you to create, deploy, and run applications in containers.
Containers are lightweight, standalone executable packages that contain everything needed to run an
application, including code, runtime, system tools, libraries, and settings.

One of the key benefits of using Docker is that it makes it easy to develop and deploy applications across
multiple environments, from development to testing to production. With Docker, you can package your
application and all its dependencies into a single container, which can then be run on any machine that
supports Docker, without worrying about compatibility issues.
Other benefits of using Docker include:
Faster and more efficient development: With Docker, developers can work in a consistent environment,
which eliminates many of the problems that can arise from differences between development and
production environments.

Improved scalability and resource utilization: Docker allows you to run multiple containers on a single
machine, which can help to maximize resource utilization and reduce costs.

Simplified deployment and maintenance: Docker makes it easy to deploy and update applications, and also
simplifies maintenance tasks such as backups and restores.

Overall, Docker is a powerful tool for developing and deploying applications, and is widely used in the
software development industry.

Advantages of Docker

Now that you know the advantages of Docker, the next thing you need to know in this

what is Docker article is how it works and its components.

 Enables integrated user interface to view and monitor Docker containers


 Quickly starts Docker within ten seconds
 Easy to use Linux Workspaces
 Allots required resource and memory space
 Consists of CA synchronization
 Supports HTTP proxy settings
Here is a list of elements you should have in order to create and run Docker
containers:
 Docker Engine: It runs on the host machine to build and run containers
 Docker Daemon: It manages Docker containers
 Docker Client: It runs commands. The command is translated using REST API
and delivered to the Docker Daemon
 Docker Compose: It runs two containers in a single service
Now, moving forward, we’ll be explaining the installation process of Docker on
Windows 10.

Requirements
1. Windows 10 with 64 bit
2. Windows 11 with 64 bit operating system
3. 2004 or higher version of Pro
4. 1909 version or higher for Enterprise or Education Version

Specifications
1. While choosing for windows 10 or 11 with 64 bit, it must be having higher
level of translation
2. 4GB RAM or Higher version but not less
3. BIOS settings should have hardware virtualization support enabled.
4. Hyper V feature, WSL 2 feature and Container feature should be enabled in
windows.
5. Windows supported by Microsoft need to be updated, if computers have older
versions of windows.

Docker is a popular platform for creating, deploying, and running applications in


containers. Containers are lightweight, standalone, and executable packages that
contain all the necessary dependencies, libraries, and configurations to run an
application.

Here are some examples of how Docker can be used in real-time scenarios:

Development environment - Docker can be used to create consistent development


environments that can be easily shared and replicated across teams. Developers can
build, test, and deploy their applications in containers that are isolated from other
applications and environments.

Continuous Integration and Continuous Delivery (CI/CD) - Docker can be integrated


with CI/CD pipelines to automate the testing, building, and deployment of
applications. This ensures that the code is tested and built in a consistent and
reproducible environment.
Microservices - Docker can be used to create microservices, which are small,
independent, and scalable services that can be easily deployed and managed. Each
microservice can be packaged in a container, and multiple microservices can be
orchestrated and managed using tools like Kubernetes or Docker Swarm.

Cloud computing - Docker can be used to deploy applications in the cloud, such as
Amazon Web Services (AWS), Google Cloud Platform (GCP), or Microsoft Azure.
Docker containers can be deployed on virtual machines, which can be easily scaled
up or down based on demand.

Overall, Docker provides a simple and efficient way to manage and deploy
applications across different environments and platforms. It can help to reduce
infrastructure costs, improve deployment times, and increase the scalability and
reliability of applications.

Docker is a popular platform that enables developers to create, deploy, and run applications in containers.
Here are some of the most commonly used Docker commands with examples:

docker run - This command is used to run a container.


Example: docker run hello-world

docker ps - This command is used to list all the running containers.


Example: docker ps

docker images - This command is used to list all the available images on your system.
Example: docker images

docker build - This command is used to build an image from a Dockerfile.


Example: docker build -t myapp .

docker push - This command is used to push an image to a registry.


Example: docker push myregistry/myapp

docker pull - This command is used to pull an image from a registry.


Example: docker pull myregistry/myapp

docker stop - This command is used to stop a running container.


Example: docker stop mycontainer

docker start - This command is used to start a stopped container.


Example: docker start mycontainer

docker rm - This command is used to remove a container.


Example: docker rm mycontainer

docker rmi - This command is used to remove an image.


Example: docker rmi myimage

These are just a few examples of some of the most commonly used Docker commands. There are many
more commands and options available that can help you manage your Docker containers and images.

While Docker is not specifically designed for content management, there are some Docker commands that
can be used to manage content-related tasks. Here are a few examples:

docker-compose - This command is used to define and run multi-container Docker applications. It can be
used to manage multiple containers that are used for content management, such as a web server,
database server, and caching server.
Example: docker-compose up -d

docker exec - This command is used to execute a command inside a running container. It can be used to
manage content-related tasks, such as copying files to a container or running a command to import data
into a database.
Example: docker exec -it mycontainer cp /path/to/local/file /path/to/container/file

docker volume - This command is used to manage Docker volumes, which are used to store persistent data
that can be shared between containers. It can be used to manage content-related data, such as user
uploads or media files.
Example: docker volume create myvolume

docker logs - This command is used to view the logs for a container. It can be used to monitor content-
related tasks, such as indexing or processing large amounts of data.
Example: docker logs mycontainer

docker-compose logs - This command is used to view the logs for a Docker Compose application. It can be
used to monitor content-related tasks across multiple containers.
Example: docker-compose logs -f

Develop a simple containerized application using Docker.


Example:1

Create a directory for your application and create a simple web page. For example, create a file named
index.html with the following content:

<!DOCTYPE html>
<html>
<head>
<title>Hello Docker!</title>
</head>
<body>
<h1>Hello Docker!</h1>
<p>This is a simple example of a containerized application.</p>
</body>
</html>

2.Create a Dockerfile in the same directory with the following content:


# Use an official Python runtime as a parent image
FROM python:3.9-slim-buster

# Set the working directory to /app


WORKDIR /app

# Copy the current directory contents into the container at /app


COPY . /app

# Install any needed packages specified in requirements.txt


RUN pip install --trusted-host pypi.python.org -r requirements.txt

# Make port 80 available to the world outside this container


EXPOSE 80

# Define environment variable


ENV NAME World

# Run app.py when the container launches


CMD ["python", "app.py"]

This Dockerfile specifies the base image to use (python:3.9-slim-buster), sets the working directory, copies
the contents of the current directory into the container, installs any dependencies specified in
requirements.txt, exposes port 80, sets an environment variable, and specifies the command to run when
the container is launched.

3.Create a requirements.txt file in the same directory with the following content:

Flask==2.0.0

This specifies the dependencies required for our application to run.

4.Create a app.py file in the same directory with the following content:
from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
return "<h1>Hello Docker!</h1><p>This is a simple example of a containerized application.</p>"

if __name__ == "__main__":
app.run(host='0.0.0.0', port=80)

This is a simple Flask application that will serve our index.html file.

5.Build the Docker image using the docker build command. Navigate to the directory where your
Dockerfile is located and run the following command:

docker build -t myapp .

This will build the Docker image and tag it with the name myapp.

6.Run the Docker container using the docker run command:


docker run -p 80:80 myapp

This will start the container and map port 80 inside the container to port 80 on your host machine.

7.Open a web browser and navigate to http://localhost to see your containerized application in action!
That's it! You've successfully created a simple containerized application using Docker. Of course, this is just
a basic example and there are many more advanced features and techniques you can use with Docker.

Example 2:
For the rest of this guide, you'll be working with a simple todo list manager that runs on Node.js. If you're
not familiar with Node.js, don't worry. This guide doesn't require any prior experience with JavaScript.

Prerequisites
1. You have installed the latest version of Docker Desktop.
2. You have installed a Git client.
3. You have an IDE or a text editor to edit files. Docker recommends using Visual Studio Code.
4. Get the app
5. Before you can run the application, you need to get the application source code onto your machine.

Clone the getting-started-app repository using the following command:


git clone https://github.com/docker/getting-started-app.git

View the contents of the cloned repository. You should see the following files and sub-directories.
── getting-started-app/
── .dockerignore
── package.json
── README.md
── spec/
── src/
── yarn.lock

Build the app's image


To build the image, you'll need to use a Dockerfile. A Dockerfile is simply a text-based file with no file
extension that contains a script of instructions. Docker uses this script to build a container image.

In the getting-started-app directory, the same location as the package.json file, create a file named
Dockerfile with the following contents:

# syntax=docker/dockerfile:1
FROM node:lts-alpine
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]
EXPOSE 3000

This Dockerfile starts off with a node:lts-alpine base image, a light-weight Linux image that comes with
Node.js and the Yarn package manager pre-installed. It copies all of the source code into the image, installs
the necessary dependencies, and starts the application.

Build the image using the following commands:


In the terminal, make sure you're in the getting-started-app directory. Replace /path/to/getting-started-
app with the path to your getting-started-app directory.

cd /path/to/getting-started-app

Build the image: docker build -t getting-started .

The docker build command uses the Dockerfile to build a new image. You might have noticed that Docker
downloaded a lot of "layers". This is because you instructed the builder that you wanted to start from the
node:lts-alpine image. But, since you didn't have that on your machine, Docker needed to download the
image.

After Docker downloaded the image, the instructions from the Dockerfile copied in your application and
used yarn to install your application's dependencies. The CMD directive specifies the default command to
run when starting a container from this image.

Finally, the -t flag tags your image. Think of this as a human-readable name for the final image. Since you
named the image getting-started, you can refer to that image when you run a container.

The . at the end of the docker build command tells Docker that it should look for the Dockerfile in the
current directory.

Start an app container


Now that you have an image, you can run the application in a container using the docker run command.
Run your container using the docker run command and specify the name of the image you just created:

docker run -d -p 127.0.0.1:3000:3000 getting-started

The -d flag (short for --detach) runs the container in the background. This means that Docker starts your
container and returns you to the terminal prompt. Also, it does not display logs in the terminal.

The -p flag (short for --publish) creates a port mapping between the host and the container. The -p flag
takes a string value in the format of HOST:CONTAINER, where HOST is the address on the host, and
CONTAINER is the port on the container. The command publishes the container's port 3000 to
127.0.0.1:3000 (localhost:3000) on the host. Without the port mapping, you wouldn't be able to access the
application from the host.

After a few seconds, open your web browser to http://localhost:3000. You should see your app.

Add an item or two and see that it works as you expect. You can mark items as complete and remove
them. Your frontend is successfully storing items in the backend.

At this point, you have a running todo list manager with a few items.

If you take a quick look at your containers, you should see at least one container running that's using the
getting-started image and on port 3000. To see your containers, you can use the CLI or Docker Desktop's
graphical interface.

CLI:
Run the docker ps command in a terminal to list your containers.

docker ps: Output similar to the following should appear.

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES


df784548666d getting-started "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 127.0.0.1:3000->3000/tcp priceless_mcclintock

Example 3:
Step 1: Set Up Your Project: Create a new directory for your project and navigate into it:

mkdir flask_app

cd flask_app

Step 2: Create the Flask Application: Create a file named app.py and add the following code:

from flask import Flask

app = Flask(__name__)
@app.route('/')

def hello():

return "Hello, World!"

if __name__ == '__main__':

app.run(host='0.0.0.0', port=5000)

Step 3: Create a Requirements File: Create a file named requirements.txt and add the following line:

Flask==2.0.1

Step 4: Create a Dockerfile: Create a file named Dockerfile and add the following content:

# Use the official Python image from the Docker Hub

FROM python:3.9-slim

# Set the working directory

WORKDIR /app

# Copy the requirements file into the container

COPY requirements.txt .

# Install the dependencies

RUN pip install -r requirements.txt

# Copy the rest of the application code into the container

COPY . .

# Define the command to run the application

CMD ["python", "app.py"]

Step 5: Build the Docker Image: Build the Docker image using the following command:

docker build -t flask_app .


Step 6: Run the Docker Container: Run the Docker container using the following command:

docker run -p 5000:5000 flask_app

Step 7: Access the Application:


Open your web browser and navigate to http://localhost:5000. You should see "Hello, World!"
displayed.
That's it! You've successfully created a simple containerized application using Docker. If you have any
questions or need further assistance, feel free to ask!

You might also like