前言
作為開發(fā)經(jīng)常需要本地數(shù)據(jù)庫,docker可以快速部署,并且可以快速刪除??偨Y(jié)了一下常用數(shù)據(jù)庫,mysql,redis,mongo,postgres四種數(shù)據(jù)庫部署
version: "3.5"
services:
mongo-data:
image: mongo
container_name: mongo
environment:
NETWORK:
volumes:
- ./mongo/mongo_configdb:/data/configdb
- ./mongo/mongo_db:/data/db
ports:
- 27017:27017
restart: on-failure
logging:
driver: "json-file"
options:
compress: "true"
max-file: "10"
max-size: "50m"
redis-data:
image: redis
container_name: redis
volumes:
- ./redis.conf:/etc/redis/redis.conf
- ./redis/data:/data
ports:
- 6379:6379
entrypoint: []
environment:
NETWORK:
restart: on-failure
logging:
driver: "json-file"
options:
compress: "true"
max-file: "10"
max-size: "50m"
mysql:
# 鏡像名
image: mysql:8.0.21
# 容器名(以后的控制都通過這個)
container_name: mysql
# docker 驗證
security_opt:
- seccomp:unconfined
# 重啟策略
restart: on-failure
environment:
# 時區(qū)上海
TZ: Asia/Shanghai
LANG: C.UTF-8
# root 密碼
MYSQL_ROOT_PASSWORD: root1234
# 初始化數(shù)據(jù)庫(后續(xù)的初始化sql會在這個庫執(zhí)行)
MYSQL_DATABASE: mall
# 初始化用戶(登錄 mysql -uroot -p )
MYSQL_USER: root
# 用戶密碼
MYSQL_PASSWORD: root1234
# 映射端口
ports:
- 3306:3306
volumes:
# 數(shù)據(jù)掛載
- ./mysql/data/:/var/lib/mysql/
# 配置掛載
- ./mysql/conf/:/etc/mysql/conf.d/
# 初始化目錄掛載
- ./mysql/init/:/docker-entrypoint-initdb.d/
# command:后面添加啟動參數(shù)
command:
# 將mysql8.0默認密碼策略 修改為 原先 策略 (mysql8.0對其默認策略做了更改 會導致密碼無法匹配)
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
# https://github.com/felipewom/docker-compose-postgres
postgres:
image: 'postgres:latest'
container_name: postgres
ports:
- 5432:5432
environment:
POSTGRES_USER: user # 用戶名
POSTGRES_PASSWORD: pass # 密碼
POSTGRES_DB: auth # 自定義庫名稱 The PostgreSQL default database (automatically created at first launch)
volumes:
- ./db-data/:/var/lib/postgresql/data/
常用命令
#啟動
docker-compose up -d
# 關(guān)閉
docker-compose stop
[關(guān)閉后]移除
docker-compose rm
強制關(guān)閉并移除鏡像. 還有參數(shù)v 表示移除卷積數(shù)據(jù),一般不用
docker-compose rm -fs