docker 安装redis,配置git

本文详细介绍了如何使用Docker安装Redis并配置,包括启动、检查、持久化设置。接着讲解了在IDEA中配置Git,实现SSH免密登录。然后转向RocketMQ,展示了如何安装Namesrv、Broker,以及解决容器内部IP与公网通信的问题。最后提到了MongoDB的安装和遇到的问题,以及Linux与Docker的相关操作。
摘要由CSDN通过智能技术生成

拉取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 ,进入 git bash

启动Git Bash

# 配置用户名
git config --global user.name "username"   //(名字不一定使用注册的名字)
# 配置邮箱
git config --global user.email "邮箱地址"

配置免密登录

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值