1. 程式人生 > 其它 >Docker 之 Mysql、SqlSever、Redis、MongoDB

Docker 之 Mysql、SqlSever、Redis、MongoDB

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')