Docker 之 Mysql、SqlSever、Redis、MongoDB
阿新 • • 發佈:2022-02-15
Docker 之 Mysql、SqlSever、Redis、MongoDB
一些知識:Docker入門的億點點學習
1 Mysql
參考:DockerHub Mysql
參考:Docker 安裝mysql容器資料卷掛載到宿主機
# 拉取mysql映象 docker pull mysql:latest # 啟動容器 docker run -itd --name mysql -p 3306:3306 \ --restart=always \ -v /root/software/mysql/config:/etc/mysql \ -v /root/software/mysql/data:/var/lib/mysql \ -v /root/software/mysql/mysql-files:/var/lib/mysql-files \ -e MYSQL_ROOT_PASSWORD=123456 \ mysql # 3306暴露埠 # 掛載資料config data mysql-files # MYSQL_ROOT_PASSWORD 密碼 # restart=always 自動啟動 # 進入mysql docker exec -it 容器id/容器名稱 /bin/bash # 登入 mysql -u root -p # 檢視資料庫版本資訊 status select version(); # 退出mysql exit;
2 SqlSever
參考:Docker 執行 SQL Server 容器映像
參考:DockerHub Microsoft SQL Server
參考:CentOS中使用Docker安裝SqlServer以及遇到的那些坑
# 拉取映象 docker pull mcr.microsoft.com/mssql/server:2019-latest # 啟動 docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=123@Password" \ -p 1433:1433 --name sqlsever -h sqlsever \ -v /root/software/sqlsever/data:/var/opt/mssql/data -v /root/software/sqlsever/log:/var/opt/mssql/log -v /root/software/sqlsever/secrets:/var/opt/mssql/secrets -d mcr.microsoft.com/mssql/server:2019-latest
3 Redis
客戶端:AnotherRedisDesktopManager
參考:DockerHub Rdis
配置檔案:redis.conf
docker pull redis docker run \ --name redis \ --restart=always \ --privileged=true \ -v /root/software/redis/redis.conf:/etc/redis/redis.conf \ -v /root/software/redis/data:/data \ -d -p 6379:6379 \ redis \ /etc/redis/redis.conf # 容器內的root擁有真正root許可權,否則容器內root只是外部普通使用者許可權 --privileged=true # 對映配置檔案 -v /root/software/redis.conf:/etc/redis/redis.conf # 注意提前下載 redis.conf 配置檔案 # 對映資料目錄 -v /root/software/data:/data # 以配置檔案方式啟動(為容器內配置檔案==對映的宿主機配置檔案)/etc/redis/redis.conf
注意事項 更改配置檔案 非常重要
bind 127.0.0.1,前面加 # [才可以遠端訪問]
requirepass "密碼" # 配置密碼
持久化配置
# RDB
save 900 1 #900秒內有至少1個鍵被更改則進行快照;
save 300 10 #300秒內有至少10個鍵被更改則進行快照;
save 60 10000 #60秒內有至少10000個鍵被更改則進行快照。
# AOF
appendonly yes #開啟AOF持久化功能;
appendfilename appendonly.aof #AOF持久化儲存檔名;
appendfsync always #每次執行寫入都會執行同步,最安全也最慢;
#appendfsync everysec #每秒執行一次同步操作;
#appendfsync no #不主動進行同步操作,而是完全交由作業系統來做,每30秒一次,最快也最不安全;
auto-aof-rewrite-percentage 100 #當AOF檔案大小超過上一次重寫時的AOF檔案大小的百分之多少時會再次進行重寫,如果之前沒有重寫過,則以啟動時的AOF檔案大小為依據;
auto-aof-rewrite-min-size 64mb #允許重寫的最小AOF檔案大小配置寫入AOF檔案後,要求系統重新整理硬碟快取的機制
# 混合持久化 可以通過bgrewriteaof手動重寫aof。
aof-use-rdb-preamble yes #配置混合持久化
4 MongoDB
參考:DockerHub MongoDB
參考:Docker 安裝 MongoDB
docker pull mongo
docker run --name mongo -p 27017:27017 \
-v /root/software/mongo/data:/data \
-d mongo \
--auth
docker exec -it mongo mongo admin
# 建立一個名為 admin,密碼為 123456 的使用者。
> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
# 嘗試使用上面建立的使用者資訊進行連線。
> db.auth('admin', '123456')