Docker DeskTop 設(shè)置容器的數(shù)據(jù)卷
-
需要在主機(jī)上設(shè)置數(shù)據(jù)卷的路徑(一級目錄)
“設(shè)置“中
”Resource“ 中
-
“File Sharing” 中設(shè)置路徑(表示主機(jī)的數(shù)據(jù)卷在
/data目錄中)/data
-
創(chuàng)建網(wǎng)絡(luò)
未指定驅(qū)動,默認(rèn)使用 bridge 網(wǎng)絡(luò)
-
命令
# 創(chuàng)建網(wǎng)絡(luò) docker network create default_network # 查看所有網(wǎng)絡(luò) docker network ls # 刪除網(wǎng)絡(luò) docker network rm default_network
Redis 容器的啟命令
-
掛載說明
- 將宿主機(jī)的掛載目錄權(quán)限改為
777 - 宿主機(jī)主備配置文件
redis.conf,按照環(huán)境需要修改配置文件
- 將宿主機(jī)的掛載目錄權(quán)限改為
-
命令包含容器啟動、數(shù)據(jù)卷掛載等
docker run -d \ --name=redis \ -p 7379:6379 \ --network=my_bridge \ --privileged=true \ -v /root/docker/redis/conf:/etc/redis \ -v /root/docker/redis/data:/data \ redis \ redis-server /etc/redis/redis.conf
Mysql 8容器的啟動命令
-
掛載說明
將宿主機(jī)的掛載目錄權(quán)限改為
777。-
注意如果需要掛在容器
/etc/my.cnf文件時,宿主機(jī)文件權(quán)限設(shè)置為644才可以正常啟動鏡像 -
my.cnf配置文件不建議進(jìn)行掛在,因為該配置文件是mysql服務(wù)的配置文件入口
!includedir /etc/mysql/conf.d/,所有自定義配置信息可以在/etc/mysql/conf.d/目錄下進(jìn)行配置-
my.cnf配置信息如下
[mysqld] host-cache-size=0 skip-name-resolve datadir=/var/lib/mysql socket=/var/run/mysqld/mysqld.sock secure-file-priv=/var/lib/mysql-files user=mysql pid-file=/var/run/mysqld/mysqld.pid [client] socket=/var/run/mysqld/mysqld.sock !includedir /etc/mysql/conf.d/ 如果配置文件中屬性值
secure-file-priv=NULL時,需要進(jìn)行修改secure-file-priv=/var/lib/mysql-files,否則掛在該配置文件會存在問題
-
-
自定義配置文件:例如配置mysql日志相關(guān)信息,在掛載容器目錄
/etc/mysql/conf.d的文件夾中創(chuàng)建log.cnf配置文件-
log.cnf文件配置新如下
[mysqld] # 錯誤日志配置 log_error = /var/log/mysql/error.log # 通用查詢?nèi)罩九渲?general_log = 1 # 開啟 general_log_file = /var/log/mysql/general.log # 慢查詢?nèi)罩九渲?slow_query_log = 1 # 開啟 slow_query_log_file = /var/log/mysql/slow.log long_query_time = 2 # 慢查詢閾值(2s) -
注意事項
-
文件擴(kuò)展名:通常只識別
.cnf文件 - 加載順序:按文件名字母順序加載,后面文件覆蓋前面
- 錯誤處理:如果目錄中的某個配置文件有語法錯誤,MySQL 可能無法啟動
-
文件擴(kuò)展名:通常只識別
-
-
命令包含容器啟動、數(shù)據(jù)卷掛載等
docker run -d \ --name=mysql_8 \ -p 4306:3306 \ --network=my_bridge \ --privileged=true \ -v /root/docker/mysql/log:/var/log/mysql \ -v /root/docker/mysql/data:/var/lib/mysql \ -v /root/docker/mysql/conf:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=mysql3306 \ mysql
nacos3.v容器啟動命令
-
命令包含啟動、數(shù)據(jù)卷掛載等
- 8848Nacos HTTP API 端口,用于Nacos AdminAPI及HTTP OpenAPI的訪問。
- 9848客戶端gRPC請求服務(wù)端端口,用于客戶端向服務(wù)端發(fā)起連接和請求
- 9849 服務(wù)端gRPC請求服務(wù)端端口,用于服務(wù)間同步等
- 7848Jraft請求服務(wù)端端口,用于處理服務(wù)端間的Raft相關(guān)請求
-
8080Nacos控制臺端口,訪問Nacos控制臺及Nacos控制臺的API。瀏覽器訪問
http://<服務(wù)器IP>:88080來管理服務(wù)發(fā)現(xiàn)和配置
docker run -d \ --name nacos \ --network=my_bridge \ --privileged=true \ -p 8848:8848 \ -p 9848:9848 \ -p 9849:9849 \ -p 7848:7848 \ -p 8080:8080 \ -e NACOS_AUTH_ENABLE=true \ -e NACOS_AUTH_TOKEN=Y9E4vZBaU/QU68XQvVLV6igl9bdWP8zMtXw43xfXMZE= \ -e NACOS_AUTH_IDENTITY_KEY=identity_id \ -e NACOS_AUTH_IDENTITY_VALUE=identity_value \ -e MODE=standalone \ -v /root/docker/nacos/logs:/home/nacos/logs \ -v /root/docker/nacos/conf:/home/nacos/conf \ -v /root/docker/nacos/data:/home/nacos/data \ nacos/nacos-server -
注意
-
在使用官方鏡像時,服務(wù)端如何開啟鑒權(quán)需要設(shè)置如下環(huán)境變量(application.properties配置不生效)
-e NACOS_AUTH_ENABLE=true \ -e NACOS_AUTH_TOKEN=Y9E4vZBaU/QU68XQvVLV6igl9bdWP8zMtXw43xfXMZE= \ -e NACOS_AUTH_IDENTITY_KEY=identity_id \ -e NACOS_AUTH_IDENTITY_VALUE=identity_value \
-
sentinel容器啟動命令
-
命令包含啟動、數(shù)據(jù)卷掛載等
-
8858 是 Sentinel Dashboard 控制臺的Web訪問端口,也是微服務(wù)應(yīng)用發(fā)送心跳和監(jiān)控數(shù)據(jù)的端口。瀏覽器中訪問
http://宿主機(jī)IP:8858來打開管理界面 - 8719(業(yè)務(wù)系統(tǒng)監(jiān)聽的端口),是客戶端接受Sentinel命令的端口
docker run -d \ --name sentinel \ --network my_bridge \ --privileged=true \ -p 8858:8858 \ -e auth_username=sentinel \ -e auth_password=sentinel8858 \ -v /root/docker/sentinel/logs:/root/logs/csp \ bladex/sentinel-dashboard -
8858 是 Sentinel Dashboard 控制臺的Web訪問端口,也是微服務(wù)應(yīng)用發(fā)送心跳和監(jiān)控數(shù)據(jù)的端口。瀏覽器中訪問
minio容器啟動命令
-
命令包含啟動、數(shù)據(jù)卷掛載等
- API端口9000,用于客戶端連接;控制臺端口9001,用于瀏覽器管理
docker run -d \ --name minio \ --network my_bridge \ --privileged=true \ -p 9001:9001 \ -p 9000:9000 \ -e MINIO_ROOT_USER=minio \ -e MINIO_ROOT_PASSWORD=minio9001 \ -v /root/docker/minio/data:/data \ -v /root/docker/minio/config:/root/.minio \ minio/minio \ server /data \ --console-address ":9001" \ --address ":9000"
RocketMQ 容器啟動命令
nameserver 容器啟動命令
-
掛載說明
將宿主機(jī)的掛載目錄權(quán)限改為
777-
準(zhǔn)備配置
namesrv.conf(自定義)# namesrv端口號 listenPort=8876
-
命令包含啟動、數(shù)據(jù)卷掛載等
docker run \ --network default_network \ --network-alias mqNamesrv \ -p 9876:9876 \ --privileged=true \ -v /data/appData/dockerData/rocketmq/mqnamesrv/conf/namesrv.conf:/home/rocketmq/rocketmq-4.5.2/conf/namesrv.conf \ -v /data/appData/dockerData/rocketmq/mqnamesrv/logs:/home/rocketmq/logs \ -e "JAVA_OPT_EXT=-Xms128M -Xmx128M -Xmn128m" \ --name=mqNamesrv \ -d foxiswho/rocketmq:server
broker 容器啟動命令
-
前期準(zhǔn)備
將宿主機(jī)的掛載目錄權(quán)限改為
777-
準(zhǔn)備
broker.conf# 指定整個broker集群的名稱,或者是RocketMQ集群名稱 brokerClusterName=DefaultCluster # 指定master-slave集群名稱,一個RocketMQ集群可以包含多個master-slave集群 brokerName=broker_a # master的brokerId=0 brokerId=0 # 指定刪除消息存儲過期文件的時間為凌晨4點 deleteWhen=04 # 指定未發(fā)生更新的消息存儲文件保留時長為48小時,48小時后過期,將會被刪除 fileReservedTime= # 指定當(dāng)前broker為異步復(fù)制master brokerRole=ASYNC_MASTER # 指定刷盤策略為異步刷盤 flushDiskType=ASYNC_FLUSH # broker_a-master端口號 listenPort=10991 # 指定nameServer的地址 #namesrvAddr=ip:port;ip:port namesrvAddr=mqNamesrv:9876 # 指定消息存儲相關(guān)的路徑。默認(rèn)路徑為~/store目錄 storePathRootDir=/home/rocketmq/store storePathCommitLog=/home/rocketmq/store/commitLog storePathConsumerQueue=/home/rocketmq/store/consumerqueue storePathIndex=/home/rocketmq/store/index storeCheckpoint=/home/rocketmq/store/checkpoint abortFile=/home/rocketmq/store/abort
-
命令
docker run \ --network default_network \ --network-alias mqBroker \ -p 10911:10911 \ --privileged=true \ --name=mqBorker \ -v /data/appData/dockerData/rocketmq/mqbroker/conf/broker.conf:/etc/rocketmq/broker.conf \ -v /data/appData/dockerData/rocketmq/mqbroker/store_a:/home/rocketmq/store/ \ -e "JAVA_OPTS=-Duser.home=/opt" \ -e "JAVA_OPT_EXT=-Xms128M -Xmx128M -Xmn128m" \ -d foxiswho/rocketmq:broker
啟動控制臺服務(wù)
-
前期準(zhǔn)備
- 準(zhǔn)備時區(qū)設(shè)置文件
/etc/localtime 和 /etc/timezone,對時區(qū)文件復(fù)制以供數(shù)據(jù)卷掛載使用,以便解決解決界面錯誤提示This date have not data問題。
- 準(zhǔn)備時區(qū)設(shè)置文件
-
命令
docker run \ --network default_network \ --network-alias mqConsole \ --privileged=true \ --name=mqConsole \ -p 9000:8080 \ -e "JAVA_OPTS=-Drocketmq.namesrv.addr=mqNamesrv:9876 \ -Dcom.rocketmq.sendMessageWithVIPChannel=false \ -Duser.timezone='Asia/Shanghai'" \ -v /data/appData/dockerData/rocketmq/mqconsole/timezone:/etc/timezone \ -v /data/appData/dockerData/rocketmq/mqconsole/localtime:/etc/localtime \ -d styletang/rocketmq-console-ng -
參考文檔