Containers
This guide provides detailed instructions for setting up a docker container including network configuration, volume management, and container deployment.
Database
MySQL
Image: https://hub.docker.com/_/mysql
Create Network
docker network create mysql_network
Create Volume
docker volume create mysql_data
Create Container
docker run -d \
--name mysql_container \
-e MYSQL_ROOT_PASSWORD=rootpassword \
-e MYSQL_DATABASE=mydatabase \
-e MYSQL_USER=myuser \
-e MYSQL_PASSWORD=mypassword \
-v mysql_data:/var/lib/mysql \
--network mysql_network \
-p 3306:3306 \
--restart unless-stopped \
mysql:8.0
PostgreSQL
Image: https://hub.docker.com/_/postgres/tags
Create Network
docker network create pg_network
Create Volume
docker volume create pg_data
Create Container
docker run -d \
--name postgres \
--restart unless-stopped \
-p 5432:5432 \
-v pg_data:/var/lib/postgresql/data \
-e POSTGRES_PASSWORD=postgres123 \
-e POSTGRES_USER=posgres_user \
-e POSTGRES_DB=test_database \
--health-cmd "pg_isready -U posgres_user -d test_database" \
--health-interval 10s \
--health-timeout 5s \
--health-retries 3 \
--network pg_network \
postgres:17.3-alpine
In Memory Storage
Redis
Image: https://hub.docker.com/_/redis/tags
Create Network
docker network create redis_network
Create Volume
docker volume create redis_data
Create Container
docker run -d \
--name redis \
--restart unless-stopped \
-p 6379:6379 \
-v redis_data:/data \
--health-cmd "redis-cli --raw incr ping" \
--health-interval 1s \
--health-timeout 3s \
--health-retries 5 \
--network redis_network \
redis:5-alpine
Message Queue
Rabbit MQ
Image: https://hub.docker.com/_/rabbitmq
Create Volume
docker volume create rabbitmq_data
Create Container
docker run -d \
--name rabbitmq \
-p 5672:5672 \
-p 15672:15672 \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=password \
-v rabbitmq_data:/var/lib/rabbitmq \
rabbitmq:3.10-management-alpine \
bash -c "curl -L https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/3.10.2/rabbitmq_delayed_message_exchange-3.10.2.ez > /plugins/rabbitmq_delayed_message_exchange-3.10.2.ez && \
rabbitmq-plugins enable rabbitmq_delayed_message_exchange && \
docker-entrypoint.sh rabbitmq-server"
NSQ
Image: https://hub.docker.com/r/nsqio/nsq
Create Volume
docker volume create nsqlookupd_data
docker volume create nsqd_data
docker volume create nsqd_queue
Create Container
nsqlookupd
docker run -d --name nsqlookupd \
-p 4160:4160 \
-p 4161:4161 \
-v nsqlookupd_data:/data \
nsqio/nsq:v1.2.1 \
/nsqlookupd
nsqd
docker run -d --name nsqd \
-p 4150:4150 \
-p 4151:4151 \
-v nsqd_data:/data \
-v nsqd_queue:/var/lib/nsq \
--link nsqlookupd:nsqlookupd \
nsqio/nsq:v1.2.1 \
/nsqd --lookupd-tcp-address=nsqlookupd:4160
nsqadmin
docker run -d --name nsqadmin \
-p 4171:4171 \
--link nsqlookupd:nsqlookupd \
nsqio/nsq:v1.2.1 \
/nsqadmin --lookupd-http-address=nsqlookupd:4161
Last updated