Pass environment variables to Docker containers

#Introduction

In this tutorial, How to Pass environment variables to Docker containers. You need to pass environment variables to docker containers is a running instance of Docker. I use Docker images Postgres Databases.

Set an environment variable

We will set a variable DB_USER and DB_PASSWORD as follows:

export POSTGRES_PASSWORD=devopsroles
export POSTGRES_USER=123456789

To verify variable has been set as command follows:

echo $POSTGRES_USER
echo $POSTGRES_PASSWORD

The output terminal is as follows:

[vagrant@localhost ~]$ export POSTGRES_PASSWORD=devopsroles
[vagrant@localhost ~]$ export POSTGRES_USER=123456789
[vagrant@localhost ~]$ echo $POSTGRES_USER
123456789
[vagrant@localhost ~]$ echo $POSTGRES_PASSWORD
devopsroles

Pass the variable to a container

docker run --name postgresql -e POSTGRES_PASSWORD -e POSTGRES_USER -d postgres

The output terminal is as follows:

[vagrant@localhost ~]$ docker run --name postgresql -e POSTGRES_PASSWORD -e POSTGRES_USER -d postgres
142c69e2f3e2d1ec5c55431877ebaa55d92395399aadbcdf572c7eae201cd378
[vagrant@localhost ~]$ docker ps
CONTAINER ID   IMAGE      COMMAND                  CREATED         STATUS         PORTS      NAMES
142c69e2f3e2   postgres   "docker-entrypoint.s…"   4 seconds ago   Up 3 seconds   5432/tcp   postgresql
[vagrant@localhost ~]$ docker exec -it postgresql /bin/bash
root@142c69e2f3e2:/# env | egrep "POSTGRES_PASSWORD|POSTGRES_USER"
POSTGRES_PASSWORD=devopsroles
POSTGRES_USER=123456789
root@142c69e2f3e2:/# exit
exit
[vagrant@localhost ~]$ docker exec -it postgresql psql -U $POSTGRES_USER
psql (13.4 (Debian 13.4-1.pgdg100+1))
Type "help" for help.

123456789=#

Pass variables with an .env file

I will create a new .env file with the command:

vi .env

Copy and paste content as follows:

POSTGRES_PASSWORD=devopsroles
POSTGRES_USER=123456789

Save and close the file.

Use docker run the command as follows:

docker run --name postgresql --env-file .env -d postgres

The output terminal is as follows:

[vagrant@localhost ~]$ cat .env
POSTGRES_PASSWORD=devopsroles
POSTGRES_USER=123456789
[vagrant@localhost ~]$ docker run --name postgresql --env-file .env -d postgres
00744474177bb7af571c48dcbb974c2649857413020226a2340cb5411b9034dc

Check it

[vagrant@localhost ~]$ docker exec -it postgresql /bin/bash
root@00744474177b:/# env | egrep "POSTGRES_PASSWORD|POSTGRES_USER"
POSTGRES_PASSWORD=devopsroles
POSTGRES_USER=123456789
root@00744474177b:/#

Conclusion

You have Pass environment variables to Docker containers. I hope will this your helpful. Thank you for reading the DevopsRoles page!

, ,

About HuuPV

My name is Huu. I love technology and especially Devops Skill such as Docker, vagrant, git so forth. I likes open-sources. so I created DevopsRoles.com site to share the knowledge that I have learned. My Job: IT system administrator. Hobbies: summoners war game, gossip.
View all posts by HuuPV →

Leave a Reply

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

Comment moderation is enabled. Your comment may take some time to appear.

This site uses Akismet to reduce spam. Learn how your comment data is processed.