Basic Commands
# Show log after 30 sec.
docker logs --since 30s -f <container_name_or_id>
# Show last 20 lines of the log file
docker logs --tail 20 -f <image_id>
# Build a new image, it should be executed in the same folder which contains your custom Dockerfile
docker build --rm --no-cache -t gitlab-vm .
# Running a container in background
docker run -p 8080:3000 -d nginx
# Enter in a running container
docker exec -it <container_id> /bin/bash
# Stop all containers
docker stop $(docker ps -aq)
# Remove all containers with status = exited
docker rm $(docker ps -q -f status=exited)
# Clean up dangling images
docker rmi $(docker images -f "dangling=true" -q)
# Remove all containers no longer running
docker rm $(docker ps -a -q)
# Remove all images + Remove unused data
sudo docker rmi -f $(docker images)
docker system prune -a
# Commit a custom image
docker commit <container_id> <your_custom_image_name>
# Tag a container image
docker tag <image_id> <repository_name>
# Push an image to Docker Hub
docker push <repository_name> ex. myusername/jenkins
# List running containers
docker ps
# Check container information
docker inspect <container_id>
# Link containers
docker run --name gogs --link mysql:mysql -p 8080:3000 -d gogs
# Test listening port inside container
cat < /dev/tcp/127.0.0.1/22
Kafka
version: '3'
services:
zookeeper:
image: confluentinc/cp-zookeeper:7.0.1
container_name: zookeeper
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
broker:
image: confluentinc/cp-kafka:7.0.1
container_name: broker
ports:
# To learn about configuring Kafka for access across networks see
# https://www.confluent.io/blog/kafka-client-cannot-connect-to-broker-on-aws-on-docker-etc/
- "9092:9092"
depends_on:
- zookeeper
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_INTERNAL:PLAINTEXT
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092,PLAINTEXT_INTERNAL://broker:29092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
MySQL
version: '3.6'
services:
adminer_container:
image: adminer:latest
environment:
ADMINER_DEFAULT_SERVER: db
ADMINER_DESIGN: dracula
ports:
- 8080:8080
db:
container_name: mysql8
image: mysql:8.0
command: mysqld --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
ports:
- '3306:3306'
volumes:
- './docker/db/data:/var/lib/mysql'
- './docker/db/my.cnf:/etc/mysql/conf.d/my.cnf'
- './docker/db/sql:/docker-entrypoint-initdb.d'
RabbitMQ
version: '3.8'
services:
mongo:
image: "mongo:4.0.2"
restart: always
ports:
- "27017:27017"
command: --profile=1 --slowms=0
networks:
- south_net
mongo-express:
image: "mongo-express:0.54"
restart: always
ports:
- "9091:8081"
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: admin
depends_on:
- mongo
networks:
- south_net
redis:
container_name: redis
image: redis:6.2-alpine
restart: always
ports:
- '6379:6379'
command: ["redis-server", "--appendonly", "yes"]
networks:
- south_net
activemq:
image: "rmohr/activemq:5.15.9-alpine"
restart: always
ports:
- "61616:61616"
networks:
- south_net
redis-commander:
image: rediscommander/redis-commander:latest
environment:
- REDIS_HOSTS=local:redis:6379
- HTTP_USER=root
- HTTP_PASSWORD=qwerty
ports:
- 5000:8082
depends_on:
- redis
networks:
- south_net
rabbitmq:
image: rabbitmq:3-management-alpine
restart: always
container_name: 'rabbitmq'
ports:
- 5672:5672
- 15672:15672
networks:
- south_net
networks:
south_net:
driver: bridge
PostgreSQL
version: '3.6'
services:
adminer_container:
image: adminer:latest
environment:
ADMINER_DEFAULT_SERVER: db
ADMINER_DESIGN: dracula
ports:
- 8080:8080
db:
image: postgres:10.1-alpine
ports:
- 5432:5432
volumes:
- postgres_data:/var/lib/postgresql/data/
environment:
- POSTGRES_PASSWORD=12345678
- POSTGRES_USER=postgres
elasticsearch:
image: elasticsearch:7.17.0
ports:
- 9200:9200
environment:
- discovery.type=single-node
volumes:
postgres_data: