MySQL
拉取镜像
1 2
| docker pull mysql docker pull mysql:latest
|
查看镜像
1 2
| docker images docker rmi image
|
创建容器
1 2 3 4 5 6 7 8 9 10 11 12
| docker run -d \ --restart=always \ --name mysql \ -v /opt/docker/mysql/data:/var/lib/mysql \ -v /opt/docker/mysql/conf:/etc/mysql \ -v /opt/docker/mysql/log:/var/log/mysql \ -p 3306:3306 \ -e TZ=Asia/Shanghai \ -e MYSQL_ROOT_PASSWORD=123456 \ mysql \ --character-set-server=utf8mb4 \ --collation-server=utf8mb4_general_ci
|
-d 表示后台运行
-v
/itwxe/dockerData/mysql/data:/var/lib/mysql:将数据文件夹挂载到主机 -v
/itwxe/dockerData/mysql/conf:/etc/mysql:将配置文件夹挂在到主机,可以在宿主机放一份自定义
my.cnf文件,那么容器就会按自定义配置启动 -v
/itwxe/dockerData/mysql/log:/var/log/mysql:将日志文件夹挂载到主机 -p
3306:3306:将容器的3306端口映射到主机的3306端口 -e
MYSQL_ROOT_PASSWORD=123456:初始化123456用户的密码
--character-set-server=utf8mb4:设置字符集
--collation-server=utf8mb4_general_ci:排序方式
docker run -p 3306:3306 --name mysql -v
/docker/mysql/logs:/var/log/mysql -v /docker/mysql/data:/var/lib/mysql
-v /docker/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=158212
--restart=always --privileged=true -d mysql:latest
1 2 3 4 5 6 7 8 9
| docker ps docker ps -a docker start mysql docker exec -it 容器ID /bin/bash mysql -u 用户名 -p
docker stop mysql docker rm mysql
|
Redis
1 2 3 4 5 6 7 8 9 10
| docker run \ -d \ --privileged=true \ --restart always \ -v /opt/docker/redis/conf/data:/data \ -v /opt/docker/redis/conf/redis:/usr/local/etc/redis \ --name redis \ -p 6379:6379 \ redis \ --appendonly yes
|
-d -> 以后台运行 -p 6379:6379 -> 绑定宿主机端口 --name myredis
-> 指定容器名称 --restart always -> 开机启动 --privileged=true
-> 提升容器内权限 -v /root/docker/redis/conf:/etc/redis/redis.conf
-> 映射配置文件 -v /root/docker/redis/data:/data -> 映射数据目录
--appendonly yes -> 开启数据持久化
1 2 3 4 5 6 7 8 9 10 11 12 13
| docker exec -it redis /bin/bash docker exec -it redis bash
redis-cli
> set name bella
> get name
docker exec -it redis redis-cli
|
rocketmq
构建namesrv容器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| docker run -d \ --restart=always \ --name rmqnamesrv \ --privileged=true \ -p 9876:9876 \ -v /opt/docker/rocketmq/data/namesrv/logs:/root/logs \ -v /opt/docker/rocketmq/data/namesrv/store:/root/store \ -e "MAX_POSSIBLE_HEAP=100000000" \ -e "JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m" \ apache/rocketmq \ sh mqnamesrv
-e "MAX_POSSIBLE_HEAP=100000000": 设置一个名为 MAX_POSSIBLE_HEAP 的环境变量,其值为 100000000。这可能用于配置 Java 进程的最大堆大小。 -e "JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m": 设置一个名为 JAVA_OPT_EXT 的环境变量,用于配置 Java 的一些运行时参数,包括初始堆大小 (-Xms)、最大堆大小 (-Xmx) 和年轻代堆大小 (-Xmn)。 apache/rocketmq: 使用的 Docker 镜像。这里使用的是 Apache RocketMQ 官方提供的镜像。 sh mqnamesrv: 在容器启动后执行的命令,这里是启动 RocketMQ Namesrv 服务的命令。
|
创建broker节点
数据卷
1
| mkdir -p /opt/docker/rocketmq/data/broker/logs/ opt/docker/rocketmq/data/broker/store /opt/docker/rocketmq/conf
|
修改配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13
| vi /opt/docker/rocketmq/conf/broker.conf
brokerClusterName = DefaultCluster brokerName = broker-a brokerId = 0 deleteWhen = 04 fileReservedTime = 48 brokerRole = ASYNC_MASTER flushDiskType = ASYNC_FLUSH brokerIP1 = 192.168.27.129 diskMaxUsedSpaceRatio=95
|
brokerClusterName = DefaultCluster
:
设置 Broker 所属的集群名字。集群是一组具有相同 Cluster Name 的 Broker
的组合。
brokerName = broker-a
: 设置 Broker
的名字,每个 Broker 在一个集群中必须有唯一的名字。
brokerId = 0
: 设置 Broker
的唯一标识符。在一个集群中,每个 Broker 都应该有不同的 BrokerId。
deleteWhen = 04
:
设置消息文件删除的时间,表示在每天的 4 点会删除前一天的消息文件。
fileReservedTime = 48
:
设置消息文件保留的时间,表示消息文件最多保留 48 小时。
brokerRole = ASYNC_MASTER
: 设置
Broker 的角色,这里设置为异步主节点。RocketMQ
支持主从复制,该参数用于指定 Broker 的角色。
flushDiskType = ASYNC_FLUSH
:
设置磁盘刷写方式,这里设置为异步刷写。即,消息写入磁盘的时机可以是异步的。
brokerIP1 = 192.168.27.129
: 设置
Broker 的 IP 地址。这是 Broker 对外通信的地址。
diskMaxUsedSpaceRatio=95
:
设置磁盘最大使用空间比例,当磁盘空间使用率达到该比例时,Broker
将开始拒绝写入操作,避免磁盘被写满。
构建broker容器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| docker run -d \ --restart=always \ --name rmqbroker \ --link rmqnamesrv:namesrv \ --privileged=true \ -p 10911:10911 \ -p 10912:10912 \ -p 10909:10909 \ -v /opt/docker/rocketmq/data/broker/logs:/root/logs \ -v /opt/docker/rocketmq/data/broker/store:/root/store \ -v /opt/docker/rocketmq/conf/broker.conf:/home/rocketmq/apache/rocketmq-latest/conf/broker.conf \ -e "NAMESRV_ADDR=namesrv:9876" \ -e "JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m" \ -e "MAX_POSSIBLE_HEAP=200000000" \ apache/rocketmq \ sh mqbroker -c /home/rocketmq/apache/rocketmq-latest/conf/broker.conf
[root@bogon conf] --restart=always \ --name rmqbroker \ --link rmqnamesrv:namesrv \ --privileged=true \ -p 10911:10911 \ -p 10912:10912 \ -p 10909:10909 \ -v /opt/docker/rocketmq/data/broker/logs:/root/logs \ -v /opt/docker/rocketmq/data/broker/store:/root/store \ -v /usr/local/rocketmq/conf/broker.conf:/home/rocketmq/rocketmq/conf/broker.conf \ -e "NAMESRV_ADDR=namesrv:9876" \ -e "JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m" \ -e "MAX_POSSIBLE_HEAP=200000000" \ apache/rocketmq \ sh mqbroker -c /home/rocketmq/rocketmq/conf/broker.conf
|
创建rockermq-console服务
拉取rockermq-console镜像
1
| docker pull styletang/rocketmq-console-ng
|
构建rockermq-console容器
1 2 3 4 5 6 7
| docker run -d \ --restart=always \ --name rmqadmin \ -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.233.128:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" \ -p 8081:8080 \ --ulimit nofile=1024 \ styletang/rocketmq-console-ng:latest
|
启动mqnamesrv 和 mqbroker
启动mqnamesrv 代码:
6.2 启动mqbroker
Nacors
拉取镜像
1
| docker pull nacos/nacos-server
|
挂载目录
1 2
| mkdir -p opt/docker/nacos/logs/ mkdir -p opt/docker/nacos/conf/
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| docker run -d \ --name nacos \ -p 8848:8848 \ -p 9848:9848 \ -p 9849:9849 \ --privileged=true \ -e JVM_XMS=256m \ -e JVM_XMX=256m \ -e MODE=standalone \ -v /opt/docker/nacos/logs/:/home/nacos/logs \ -v /opt/docker/nacos/conf/:/home/nacos/conf/ \ --restart=always \ nacos/nacos-server
docker run -d --name nacos -p 8848:8848 -p 9848:9848 -p 9849:9849 --privileged=true -e JVM_XMS=256m -e JVM_XMX=256m -e MODE=standalone -v /opt/docker/nacos/logs/:/home/nacos/logs -v /opt/docker/nacos/conf/:/home/nacos/conf/ --restart=always nacos/nacos-server
|