Docker DeskTop 设置容器的数据卷
-
需要在主机上设置数据卷的路径(一级目录)
“设置“中
”Resource“ 中
-
“File Sharing” 中设置路径(表示主机的数据卷在
/data目录中)/data
-
创建网络
未指定驱动,默认使用 bridge 网络
-
命令
# 创建网络 docker network create default_network # 查看所有网络 docker network ls # 删除网络 docker network rm default_network
Redis 容器的启命令
-
挂载说明
- 将宿主机的挂载目录权限改为
777 - 宿主机主备配置文件
redis.conf,按照环境需要修改配置文件
- 将宿主机的挂载目录权限改为
-
命令包含容器启动、数据卷挂载等
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容器的启动命令
-
挂载说明
将宿主机的挂载目录权限改为
777。-
注意如果需要挂在容器
/etc/my.cnf文件时,宿主机文件权限设置为644才可以正常启动镜像 -
my.cnf配置文件不建议进行挂在,因为该配置文件是mysql服务的配置文件入口
!includedir /etc/mysql/conf.d/,所有自定义配置信息可以在/etc/mysql/conf.d/目录下进行配置-
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时,需要进行修改secure-file-priv=/var/lib/mysql-files,否则挂在该配置文件会存在问题
-
-
自定义配置文件:例如配置mysql日志相关信息,在挂载容器目录
/etc/mysql/conf.d的文件夹中创建log.cnf配置文件-
log.cnf文件配置新如下
[mysqld] # 错误日志配置 log_error = /var/log/mysql/error.log # 通用查询日志配置 general_log = 1 # 开启 general_log_file = /var/log/mysql/general.log # 慢查询日志配置 slow_query_log = 1 # 开启 slow_query_log_file = /var/log/mysql/slow.log long_query_time = 2 # 慢查询阈值(2s) -
注意事项
-
文件扩展名:通常只识别
.cnf文件 - 加载顺序:按文件名字母顺序加载,后面文件覆盖前面
- 错误处理:如果目录中的某个配置文件有语法错误,MySQL 可能无法启动
-
文件扩展名:通常只识别
-
-
命令包含容器启动、数据卷挂载等
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容器启动命令
-
命令包含启动、数据卷挂载等
- 8848Nacos HTTP API 端口,用于Nacos AdminAPI及HTTP OpenAPI的访问。
- 9848客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求
- 9849 服务端gRPC请求服务端端口,用于服务间同步等
- 7848Jraft请求服务端端口,用于处理服务端间的Raft相关请求
-
8080Nacos控制台端口,访问Nacos控制台及Nacos控制台的API。浏览器访问
http://<服务器IP>:88080来管理服务发现和配置
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 -
注意
-
在使用官方镜像时,服务端如何开启鉴权需要设置如下环境变量(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容器启动命令
-
命令包含启动、数据卷挂载等
-
8858 是 Sentinel Dashboard 控制台的Web访问端口,也是微服务应用发送心跳和监控数据的端口。浏览器中访问
http://宿主机IP:8858来打开管理界面 - 8719(业务系统监听的端口),是客户端接受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访问端口,也是微服务应用发送心跳和监控数据的端口。浏览器中访问
minio容器启动命令
-
命令包含启动、数据卷挂载等
- 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 容器启动命令
-
挂载说明
将宿主机的挂载目录权限改为
777-
准备配置
namesrv.conf(自定义)# namesrv端口号 listenPort=8876
-
命令包含启动、数据卷挂载等
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 容器启动命令
-
前期准备
将宿主机的挂载目录权限改为
777-
准备
broker.conf# 指定整个broker集群的名称,或者是RocketMQ集群名称 brokerClusterName=DefaultCluster # 指定master-slave集群名称,一个RocketMQ集群可以包含多个master-slave集群 brokerName=broker_a # master的brokerId=0 brokerId=0 # 指定删除消息存储过期文件的时间为凌晨4点 deleteWhen=04 # 指定未发生更新的消息存储文件保留时长为48小时,48小时后过期,将会被删除 fileReservedTime= # 指定当前broker为异步复制master brokerRole=ASYNC_MASTER # 指定刷盘策略为异步刷盘 flushDiskType=ASYNC_FLUSH # broker_a-master端口号 listenPort=10991 # 指定nameServer的地址 #namesrvAddr=ip:port;ip:port namesrvAddr=mqNamesrv:9876 # 指定消息存储相关的路径。默认路径为~/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
启动控制台服务
-
前期准备
- 准备时区设置文件
/etc/localtime 和 /etc/timezone,对时区文件复制以供数据卷挂载使用,以便解决解决界面错误提示This date have not data问题。
- 准备时区设置文件
-
命令
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 -
参考文档