No menu items!

    How To Use Docker Volumes for Persistent Information Storage

    Date:

    Share post:



     

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

    Conditions

     

    To observe together with this tutorial:

    • It is best to have Docker put in in your machine
    • You have 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 information. This quantity will persist the information 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 possibly can examine the quantity and test the contents.

    $ docker quantity examine pgdata

     

    Operating this command will present particulars in regards to the quantity, together with its mount level in your host system. You possibly can navigate to this listing and see the PostgreSQL information recordsdata.

    [
    	{
        	"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,
        title VARCHAR(100),
        e mail VARCHAR(100)
    );
    
    INSERT INTO customers (title, e mail) VALUES ('Abby', 'abby@instance.com'), ('Bob', 'bob@instance.com');

     

    Run a pattern question:

     

    Output:

     id | title |  	e mail  	 
    ----+------+------------------
      1 | Abby | abby@instance.com
      2 | Bob  | bob@instance.com

     

    Step 6: Cease and Take away the Container

     

    Cease the working container and take away it. We do that so we will take a look at that the information 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 information persists.

    Open a psql session:

    $ docker exec -it my_postgres psql -U postgres

     

    Hook up with the mydb database:

     

    Confirm the information within the customers desk:

     

    It is best to nonetheless see the output:

     id | title |  	e mail  	 
    ----+------+------------------
      1 | Abby | abby@instance.com
      2 | Bob  | bob@instance.com

     

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

     

    Extra Sources

     

    To study extra, learn the next sources:

    Comfortable 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 low! At the moment, she’s engaged on studying and sharing her information with the developer neighborhood by authoring tutorials, how-to guides, opinion items, and extra. Bala additionally creates participating useful resource overviews and coding tutorials.

    Related articles

    AI and the Gig Financial system: Alternative or Menace?

    AI is certainly altering the best way we work, and nowhere is that extra apparent than on this...

    Efficient Electronic mail Campaigns: Designing Newsletters for Dwelling Enchancment Corporations – AI Time Journal

    Electronic mail campaigns are a pivotal advertising software for residence enchancment corporations looking for to interact clients and...

    Technical Analysis of Startups with DualSpace.AI: Ilya Lyamkin on How the Platform Advantages Companies – AI Time Journal

    Ilya Lyamkin, a Senior Software program Engineer with years of expertise in growing high-tech merchandise, has created an...

    The New Black Overview: How This AI Is Revolutionizing Trend

    Think about this: you are a designer on a decent deadline, gazing a clean sketchpad, desperately making an...