拉取redis镜像
docker pull redis
为了防止挂载映射redis.conf 被误以为成目录 /mydata/redis/conf/redis.conf,先创建文件夹,再创建文件
mkdir -p /mydata/redis/conf //创建文件夹
touch /mydata/redis/conf/redis.conf //创建文件
启动redis
docker run -p 6379:6379 --name redis
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
docker ps查看redis 是否启动
cat redis.cnf查看redis配置文件,进入redis 的cli
docker exec -it redis redis-cli
docker exec -it redies /bin/bash 这个是进入控制台
进入Redis容器中
docker exec -it redis bash
测试一下redis
set a b
get a //可以拿到b
由于redis的默认配置是没有持久化的,重启redis之后数据就会丢失
exit先退出,然后docker restart redis,重新get a发现获取不到b了
重启redis
dockers restart redis
如果重启失败,先重启docker,在重启redis
设置redis、MySQL随着docker启动而启动
docker update redis --restart=always
docker update mysql --restart=always
查看Redis设置的密码
CONFIG GET reqirepass
为Redis设置账号和密码
CONFIG SET reqirepass 123456 //如果是使用自己的云服务器,建议设置复杂的密码
Idea【配置git】
启动Git Bash
配置免密登录
ssh-keygen -t rsa -C "邮箱地址"
三次回车,来到此
cat ~/.ssh/id_rsa.pub //生成密钥
在设置中,->安全设置->ssh公钥,给一个标题和复制密钥到公钥中,确定,输入登录密码
ssh -T git@gitee.com //测试是否连接成功
在idea上直接克隆项目
复制该地址
- RocketMQ安装
rocketmq-namesrv地址
安装命令:
docker run --name namesrv -p 9876:9876 -e "MAX_POSSIBLE_HEAP=100000000" -d rocketmqinc/rocketmq sh mqnamesrv
docker run --name namesrv【名字】
-p 9876【挂载映射的端口】:9876
-e "MAX_POSSIBLE_HEAP=100000000"【双引号内容是防止报堆内存不足的错误】
-d rocketmqinc/rocketmq 【-d后面是启动镜像的名称】sh mqnamesrv【镜像启动成功后,
sh启动指定的mqnamesrv】
查看namesrc的IP地址
docker inspect namesrv | grep IPA
假设broker在容器里的IP地址是172.17.0.5,RocketMQ会把Broker注册到namesrv里【注册效果 Broker-0: 172.17.0.5】;现在Windows里要开发,运行一个程序APP,执行rocketMQProductMessage(msg),即发送一句话msg,发生过程如下:
1.首先连接到namesrv去获取broker的列表brokerlist
2.负载均衡broker列表【将broker列表转换成地址】
String brokerSrv = loadbalance(brokerlist); //Broker-0
3.APP和Broker进行TCP连接,App获取到Broker-0的IP地址:172.17.0.5(由docker提供的),其实这样APP和Broker是不能通信的,因为172.17.0.5这个地址是docker分配的,只能在docker内部容器与容器之间通信,解决此问题的方法是将该IP地址改为公网地址。
那么如果更改为公网地址呢?
首先需要创建一个配置文件
cd /usr/local/ #到指定目录
rm -rf rocketmq/ #删除rocketmq/
mkdir rocketmq/ #创建rocketmq文件夹
cd rocketmq/ #进入该文件夹下
vi broker.cnf #创建文件
cat broker.cnf #查看配置文件的内容
在文件添加以下内容,将IP地址改为公网
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1 = 公网的IP,如果是云服务就是云服务的IP,如果是Linux环境就是Linux的IP
安装broker,让broker运行时使用该配置文件,通过-v挂载的方式,
docker run --name broker -p 10911:10911 -p 10909:10909 -v /usr/local/rocketmq/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf --link namesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" -d rocketmqinc/rocketmq:4.4.0 sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf
docker run --name broker 指定名称为broker
-p 10911:10911 -p 10909:10909
-v /usr/local/rocketmq/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf 将自己配置的文件挂载到容器里边的rocketmq的配置文件中
--link namesrv:namesrv 设置连接
-e "NAMESRV_ADDR=namesrv:9876" 指定Broker注册到namesrv的地址
-e "MAX_POSSIBLE_HEAP=200000000"
-d rocketmqinc/rocketmq:4.4.0 指明镜像
sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf 运行rocketmq时,-c指定配置文件
-p 指定端口,前面为外部访问端口,后面为宿主机访问端口
-v 挂载目录,将docker内目录和linux目录进行挂载
–name 指定当前容器名称
-e 指定配置
sh mqnamesrv 启动容器内部指令
console的安装
docker run --name=rocketmq-console -e "JAVA_OPTS=-Drocketmq.namesrv.addr=121.40.140.138:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 -d styletang/rocketmq-console-ng
docker run --name=rocketmq-console 取一个名称为rocketmq-console
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=121.40.140.138:9876 在console里边通过公网的地址(121.40.140.138自己的Linux或云服务的IP地址)访问namesrv时,是必须要报行9876端口的
-Dcom.rocketmq.sendMessageWithVIPChannel=false"
-p 8080:8080 端口映射
-d styletang/rocketmq-console-ng 镜像
docker删除容器
docker container rm 容器名称或容器ID
为已经创建的容器设置随docker启动而自动启动
docker update --restart=always 容器ID(或者容器名)
找到runserver.sh 和runbroker.sh
docker exec -it namesrv /bin/bash
安装Mongo
docker run --name mongo -p 27017:27017 -d mongo --auth
设置Mongo密码
docker -exec -it mongo mongo admin
安装完Mongo后一直重启
查看Mongo日志
docker logs mongo
5.0要求AVX
删除前,需要停止才能删除
docker stop 容器名
docker rmi 容器名:版本
删除掉,重启拉取4.4版
docker pull mongo:4.4
Linux查看IP的命令
ifconfig
重启docker命令
systemctl restart docker
开机自启
systemctl enable docker