Docker搭建开发环境
Nginx
1 |
MySQL57
简单使用
1 | # 运行MySQL容器: |
挂载目录使用
如果删除容器,则容器中的所有数据都会丢失。可以通过挂载宿主机的目录来指定数据位置,并自定义 MySQL 配置。
1 | mkdir -p /opt/mysql/conf/ |
my.cnf
MySQL 配置文件在/etc/mysql/mysql.conf.d/mysqld.cnf
1 | [client] |
RocketMQ
安装rocketmq
下载镜像
1
docker pull rocketmqinc/rocketmq:4.4.0
安装NameServer
1
2
3
4
5
6
7
8
9mkdir /opt/rocketmq
docker run -d --name rmqnamesrv -p 9876:9876 \
-v /opt/rocketmq/data/namesrv/logs:/root/logs \
-v /opt/rocketmq/data/namesrv/store:/root/store \
-e "MAX_POSSIBLE_HEAP=100000000" \
-e "MAX_HEAP_SIZE=256M" \
-e "HEAP_NEWSIZE=128M" \
rocketmqinc/rocketmq:4.4.0 sh mqnamesrv安装broker
1
2
3
4
5
6
71,在绝对路径/opt/rocketmq/conf 新建 broker.conf文件
mkdir -p /opt/rocketmq/conf/
2,新建 touch broker.conf文件
vim /opt/rocketmq/conf/broker.conf
3,复制下面内容到文件中 broker.conf1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18# 所属集群名称,如果节点较多可以配置多个
brokerClusterName = DefaultCluster
brokerName = broker-a
#0 表示 Master,>0 表示 Slave
brokerId = 0
#Broker 对外服务的监听端口 可以在命令时指定端口这里可以去掉
#listenPort=10911
#删除文件时间点,默认凌晨 4点
deleteWhen = 04
fileReservedTime = 48
#异步复制Master
brokerRole = ASYNC_MASTER
#异步刷盘
flushDiskType = ASYNC_FLUSH
#broker监听的ip nameServer地址。宿主机ip
brokerIP1 = 172.20.96.1
# 磁盘使用达到95%之后,生产者再写入消息会报错 CODE: 14 DESC: service not available now, maybe disk full
diskMaxUsedSpaceRatio=95启动broker
1
2
3
4
5
6
7
8
9
10
11
12docker run -d \
-p 10911:10911 -p 10909:10909 \
-v /opt/rocketmq/data/broker/logs:/root/logs \
-v /opt/rocketmq/rocketmq/data/broker/store:/root/store \
-v /opt/rocketmq/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf \
--name rmqbroker \
--link rmqnamesrv:namesrv \
-e "NAMESRV_ADDR=namesrv:9876" \
-e "MAX_POSSIBLE_HEAP=200000000" \
-e "JAVA_OPT=${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:PermSize=128m -XX:MaxPermSize=128m" \
rocketmqinc/rocketmq:4.4.0 \
sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf
安装控制台-admin
拉取镜像
1
docker pull styletang/rocketmq-console-ng
启动rocketmq 控制台
1
docker run -d --name rmq-dashboard --link rmqnamesrv:namesrv -e "JAVA_OPTS=-Drocketmq.namesrv.addr=172.20.96.1:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 19876:8080 -t styletang/rocketmq-console-ng
RabbitMQ
使用官方
1
2
3
4
5
6
7
8
9
10# 查找镜像
docker search rabbitmq
# 安装镜像
docker pull rabbitmq
# 运行rabbitmq 创建镜像
docker run --name rabbitmq \
-d --hostname localhost \
-p 15672:15672 \
-p 5672:5672 \
rabbitmq:latest拉取镜像:
1
docker pull rabbitmq:management
启动rabbitMQ
1
docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq:management
复杂版(设置账户密码,hostname)
1
docker run -d -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin --name rabbitmq --hostname=rabbitmqhostone rabbitmq:management
Redis
6.0
1
2sudo mkdir -p /mydata/redis/{conf,data}
wget http://download.redis.io/redis-stable/redis.conf -O /mydata/redis/conf/redis.conf1
2
3
4
5
6
7[root@node1 ~]# docker run -p 6379:6379 --name redis6 -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis:6.0.8 redis-server /etc/redis/redis.conf
注:可以使用以下命令查看正在运行的容器:
[root@node1 ~]# docker exec -it redis6 /bin/bash
root@8765a0c3657c:/data# redis-cli
127.0.0.1:6379> ping
PONG
部署Redis集群
1 | # 创建网卡 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 凉月の博客!
评论