Hello everyone,
In the last post, we discussed the concept of volumes. We discussed the use of named and anonymous volumes.
In this post, we will discuss the need and use of bind mounts
We will learn the use of .dockerignore
files. We will also see working with environment
variables and .env
files. We will also learn the use of build arguments
.
Hello everyone,
In the last post, we learned to perform various operations with containers and images.
In this post, we will explore volumes, which are like state management for running applications with docker. We will discuss different kinds of data we encounter while working with docker.
We will learn about different kinds of volumes, and explore anonymous and named volumes in detail by discussing their implementation in a node server application. We will create these volumes in our system.
Hello everyone,
In the last post, we learned how to create and restart containers in Docker using a Python app example. We also learned about different modes in which containers can run.
In this post, we will cover the commands used for deleting containers and images, the validation process required for deleting them, and the importance of tagging images. Additionally, we will discuss renaming containers and the advantages of tagging images. We will learn to inspect images and copy files to and from containers. We will explore sharing images with other users/developers, and some other basic related actions.
Hello everyone,
In the previous post, we executed a small node app in a Docker container and learned about creating images and containers using Docker commands. We successfully ran and stopped a container.
In today’s post, we will delve deeper into images and containers. We will learn how to tag images, override the default names of containers, share/pull images on/from Dockerhub, and many more actions that are possible with them.
To view a comprehensive list of Docker commands, you can use the docker --help
command. This will display all the available options along with a brief description of each command.
Hello everyone,
In the last post, we discussed the basic overview of Docker. In this post, we will dive deeper, install and setup Docker in our system, and use it in a small demo application to understand the core building blocks of Docker:- Images and Containers.
Docker is an open-source platform designed to develop, deploy, and operate applications. It empowers us to decouple our applications from our underlying infrastructure, facilitating the swift delivery of software. Docker allows us to treat our infrastructure with the same agility and flexibility as our applications. Leveraging Docker's practices for packaging, testing, and deploying code, we can notably minimize the time gap between coding and production deployment.
Hello everyone,
In the last post, we discussed the basics of Centrifugo and created the simplest real-time app. In this post, we will discuss the main highlights of Centrifugo.
In addition to its fundamental publish-subscribe (PUB/SUB) capabilities, Centrifugo offers a range of advanced features and building blocks to construct highly scalable real-time applications. Let's discuss main highlights and features which we will use going further.
Centrifugo was initially crafted to seamlessly integrate with frameworks lacking native concurrency support, such as Django, Laravel, and others.
Centrifugo stands as an open-source and highly scalable real-time messaging server. It excels at swiftly transmitting messages to users of an application who are connected through various supported communication channels, including WebSocket, HTTP-streaming, SSE/EventSource, WebTransport, GRPC, and SockJS. One of Centrifugo's defining features is its utilization of channels, making it an essential user-centric PUB/SUB (publish-subscribe) server.
Centrifugo is a versatile solution that transcends programming languages, making it suitable for creating an array of applications, including chat apps, live commenting systems, multiplayer games, real-time data visualizations, collaborative tools, and more.
Hello everyone,
In the last post, we discussed Django Syntax and working with QuerySets in Django. Today we will discuss about working with static files in Django.
When building web applications, we need to add some static files like images or css files. We will start by creating a folder named static
in our project, the same place where we created the templates folder:
The name of the folder has to be static.
my_tennis_club
manage.py
my_tennis_club/
members/
templates/
static/
Add a CSS file in the static folder, with any name in the folder, myfirst.css
in our case:
my_tennis_club
manage.py
my_tennis_club/
members/
templates/
static/
myfirst.css
Open the CSS file and insert the following:
my_tennis_club/members/static/myfirst.css:
body {
background-color: lightblue;
font-family: verdana;
}
Now we have a CSS file, with some CSS styling. The next step will be to include this file in a HTML template:
Hello everyone,
In the last post, we discussed Django Admin. Today we will discuss Django Syntax, some Django basics like variables, tags, conditional statements, loops, comments, QuerySets etc.
In Django templates, we can render variables by putting them inside {{ }}
brackets:
templates/template.html:
<h1>Hello {{ firstname }}, how are you?</h1>
The variable firstname
above was sent to the template via a view, as shown below:
views.py:
from django.http import HttpResponse
from django.template import loader
def testing(request):
template = loader.get_template('template.html')
context = {
'firstname': 'Linus',
}
return HttpResponse(template.render(context, request))
As shown above, we create an object named context, fill it with data and send it as the first parameter in the template.render()
function.
We can also create variables directly in the template, by using the {% with %}
template tag.