前言
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》第二步:修改配置文件
然後緊接着到它的安裝目錄下即可修改配置文件
cd apache-activemq-5.15.6
編輯 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
登錄成功如下: