File Structure
infrastructure
└── mysql
├── data
└── docker-compose.yml
Docker Command Line
docker run -d --name mysql -p 3306:3306 -e MYSQL_DATABASE=test-database -e MYSQL_USER=revi1337 -e MYSQL_PASSWORD=1337 -e MYSQL_ROOT_PASSWORD=1234 -v ./data:/var/lib/mysql mysql:8-oracle --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
Docker Compose
networks:
mysql-net:
name: mysql-net
services:
mysql:
image: mysql:8-oracle
container_name: mysql
ports:
- '3306:3306'
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
environment:
MYSQL_DATABASE: test-database
MYSQL_USER: revi1337
MYSQL_PASSWORD: 1337
MYSQL_ROOT_PASSWORD: 1234
volumes:
- ./data:/var/lib/mysql
networks:
- mysql-net
healthcheck:
test: [ "CMD", "mysqladmin", "ping", "-h", "localhost" ]
timeout: 20s
retries: 10
restart: always
docker-compose up -d
Connect MySQL
mysql -h 127.0.0.1 -P 3306 -urevi1337 -p
Reference
DockerHub MySQL