How To Use Docker Volumes for Persistent Information Storage

[ad_1]

How To Use Docker Volumes for Persistent Information Storage

 

When utilizing Docker, you need to use volumes to persist information even while you cease or restart the containers. We’ll create and use Docker volumes for PostgreSQL.

Conditions

 

To observe together with this tutorial:

  • You must have Docker put in in your machine
  • Try to be snug with Docker instructions and PostgreSQL

 

Step 1: Pull the PostgreSQL Picture

 

First, we pull the PostgreSQL picture from DockerHub:

 

Step 2: Create a Docker Quantity

 

Subsequent, let’s create a Docker quantity to retailer the info. This quantity will persist the info even when the container is eliminated.

$ docker quantity create pg_data

 

Step 3: Run the PostgreSQL Container

 

Now that we’ve pulled the picture and created a quantity, we will run the PostgreSQL container attaching the created quantity to it.

$ docker run -d 
	--name my_postgres 
	-e POSTGRES_PASSWORD=mysecretpassword 
	-v pg_data:/var/lib/postgresql/information 
	-p 5432:5432 
	postgres

 

This command runs my_postgres in indifferent mode. Utilizing –v pg_data:/var/lib/postgresql/information mounts the pg_data quantity to /var/lib/postgresql/information within the container. And utilizing -p 5432:5432 maps port 5432 of my_postgres to port 5432 on the host machine.

 

Step 4: Confirm the Quantity Utilization

 

Now that we’ve created the quantity, we will confirm it’s getting used. You’ll be able to examine the quantity and test the contents.

$ docker quantity examine pgdata

 

Working this command will present particulars concerning the quantity, together with its mount level in your host system. You’ll be able to navigate to this listing and see the PostgreSQL information information.

[
	{
    	"CreatedAt": "2024-08-07T15:53:23+05:30",
    	"Driver": "local",
    	"Labels": null,
    	"Mountpoint": "/var/lib/docker/volumes/pg_data/_data",
    	"Name": "pg_data",
    	"Options": null,
    	"Scope": "local"
	}
]

 

Step 5: Create a Database and Desk

 

Hook up with the Postgres occasion and create a database and desk.

Begin a psql session:

$ docker exec -it my_postgres psql -U postgres

 

Create a brand new database:

 

Hook up with the brand new database:

 

Create a desk and insert some information:

CREATE TABLE customers (
    id SERIAL PRIMARY KEY,
    identify VARCHAR(100),
    e-mail VARCHAR(100)
);

INSERT INTO customers (identify, e-mail) VALUES ('Abby', '[email protected]'), ('Bob', '[email protected]');

 

Run a pattern question:

 

Output:

 id | identify |  	e-mail  	 
----+------+------------------
  1 | Abby | [email protected]
  2 | Bob  | [email protected]

 

Step 6: Cease and Take away the Container

 

Cease the operating container and take away it. We do that so we will take a look at that the info persists even when the container is stopped.

$ docker cease my_postgres
$ docker rm my_postgres

 

 

Step 7: Re-run the Postgres Container with the Identical Quantity

 

Begin a brand new PostgreSQL container with the identical quantity to make sure information persistence.

$ docker run -d 
	--name my_postgres 
	-e POSTGRES_PASSWORD=mysecretpassword 
	-v pgdata:/var/lib/postgresql/information 
	-p 5432:5432 
	postgres

 

Hook up with the Postgres occasion and confirm that the info persists.

Open a psql session:

$ docker exec -it my_postgres psql -U postgres

 

Hook up with the mydb database:

 

Confirm the info within the customers desk:

 

You must nonetheless see the output:

 id | identify |  	e-mail  	 
----+------+------------------
  1 | Abby | [email protected]
  2 | Bob  | [email protected]

 

I hope this tutorial helps you perceive the right way to use volumes to persists information when working with Docker.

 

Extra Assets

 

To study extra, learn the next assets:

Completely satisfied exploring!

 
 

Bala Priya C is a developer and technical author from India. She likes working on the intersection of math, programming, information science, and content material creation. Her areas of curiosity and experience embody DevOps, information science, and pure language processing. She enjoys studying, writing, coding, and occasional! At the moment, she’s engaged on studying and sharing her data with the developer neighborhood by authoring tutorials, how-to guides, opinion items, and extra. Bala additionally creates participating useful resource overviews and coding tutorials.



[ad_2]

Leave a Reply

Your email address will not be published. Required fields are marked *