前言
Docker中拉取ActiveMQ鏡像安裝運作,以為很簡單,其實一堆的坑啊,下面就來一步步填坑吧。
1、使用指令搜尋activemq
docker search activemq

2、使用以下指令運作最新的容器:
docker pull rmohr/activemq
3、運作容器
docker run -d --name myactivemq -p 61616:61616 -p 8161:8161 rmohr/activemq:latest
JMX代理偵聽端口61616,Web控制台偵聽端口8161。
檢視正在運作的容器:
可以看到我們的activemq背景服務已經啟動了
4、控制台通路
輸入位址通路失敗:
檢視容器運作日志:
docker logs -f 正在運作的容器id/名稱
可以發現有如下錯誤資訊:
翻譯:存儲限制為102400 mb(目前存儲使用量為0 mb)、資料目錄/opt/activemq/data/kahadb 隻有14586 mb的可用空間。
翻譯:臨時存儲限制為51200 mb(目前存儲使用量為0 mb)
5、解決方式
需要修改配置檔案:
1》第一步:
1、使用docker exec :在運作的容器中執行指令,進入容器:
docker exec -it myactivemq bash
容器的虛拟路徑為:/opt/apache-activemq-5.15.6
2、使用docker inspect : 擷取容器/鏡像的中繼資料。
docker inspect myactivemq
進入MergeDir目錄容器中繼資料存放目錄:cd /var/lib/docker/overlay2/032da98c92a4879ca2eb319be8b12304d51dd0900f242180c5bdcc26380ea5d0/merged
進入到MergeDir目錄下檢視目錄,會發現有一個opt目錄,activemq就存放在該目錄下
1》第二步:修改配置檔案
然後緊接着到它的安裝目錄下即可修改配置檔案
編輯 vim activemq.xml 該檔案
vim activemq.xml
修改完成後儲存退出,停止activemq服務,重新啟動測試。
注:停止一個正在運作的容器
1、docker stop 此方式常常被翻譯為優雅的停止容器
docker stop 容器ID或容器名
參數 -t:關閉容器的限時,如果逾時未能關閉則用kill強制關閉,預設值10s,這個時間用于容器的自己儲存狀态
docker stop -t=60 容器ID或容器名
2、docker kill
docker kill 容器ID或容器名 :直接關閉容器
由此可見stop和kill的主要差別:stop給與一定的關閉時間交由容器自己儲存狀态,kill直接關閉容器
1》第三步:重新開機運作
首先先删除容器引用
然後再運作容器,防止重命名,産生運作錯誤
docker run -d --name myactivemq -p 61616:61616 -p 8161:8161 rmohr/activemq:latest
輸入位址再通路:可能還是出錯,可重新啟動虛拟機,再運作,因為我們修改的配置檔案可能沒有生效
位址:http://192.168.150.131:8161/
預設賬号密碼都是:admin
登入成功如下: