Docker安裝rocketmq踩坑指南


Docker 網絡

Docker容器運行的時候有host、bridge、none三種網絡可供配置。
默認是bridge,即橋接網絡,以橋接模式連接到宿主機;host是宿主網絡,即與宿主機共用網絡;none則表示無網絡,容器將無法聯網。
當容器使用host網絡時,容器與宿主共用網絡,這樣就能在容器中訪問宿主機網絡,那么容器的localhost就是宿主機的localhost,命令--network host,此時沒有必要使用端口映射-p 80:80 -p 443:443來映射端口,是因為本身與宿主機共用了網絡,容器中暴露端口等同於宿主機暴露端口。

Docker獲取rocketmq 鏡像

docker search xxx 可以搜索鏡像都有哪些

  • docker pull rocketmqinc/rocketmq 拉取官方鏡像,注意:如果這里加上版本號,例如rocketmqinc/rocketmq:4.4.0,雖然現在測試的就是4.4.0版本,但是編輯broker.conf時候會權限不夠,這里很奇怪,不知道為什么

  • docker run -itd -p 9876:9876 --name rmqnamesrv rocketmqinc/rocketmq sh mqnamesrv 開啟mqnamesrv服務

鏡像和上面的相同不需要重新拉取

  • docker run -itd -p 10911:10911 -p 10909:10909 --name rmqbroker --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=rmqnamesrv:9876" rocketmqinc/rocketmqsh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf 開啟broker服務,rmqnamesrv:9876為mqnamesrv服務的地址(容器名:端口),因為橋接了網絡,才可以使用容器名:端口

修改conf/broker.conf,添加brokerIP1=外網ip(不能用docker的ip,即便是橋接網絡也不行,必須是外網IP),然后重啟broker服務

可視化界面

  • docker pull styletang/rocketmq-console-ng 拉取可視化界面鏡像,這里選取star最多的鏡像

  • docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 -itd --name rocketmq-console styletang/rocketmq-console-ng 開啟可視化界面服務,rmqnamesrv:9876 為mqnamesrv服務的地址(這里好像有點問題,具體我也不知道應該寫docker地址還是外網地址,知道的麻煩留言告訴我)

給這三個服務創建橋接網絡

  • docker network create my-net # 創建了一個名為"my-net"的網絡
  • docker network connect my-net rmqnamesrv
  • docker network connect my-net rmqbroker
  • docker network connect my-net rocketmq-console
  • docker network inspect my-net #查看橋接網絡信息


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM