這個的一些配置其實在以前寫的關於Docker的進階內容中有,可是最近搗鼓了一下,發現仍是有諸多問題,因此在此記錄一下此次搗鼓的全過程以及如何解決這個問題的java
至於我爲何拉取的是這個版本,這裏簡單說明一下緣由,就是最新版裏的webapps文件夾是空的,以致於你一塊兒動,打開8080端口網頁就會發現找不到資源,而8.5.2版本卻沒有這個問題nginx
docker pull tomcat:8.5.2
docker run -it -p 8080:8080 tomcat:8.5.32
注:這裏這樣-it
啓動,表明着不是後臺啓動,會一直跑日誌的那種,並且ctrl + z
會取消運行,若是不想,就去掉web
僅僅是上面的操做,仍是會遺留下來2個問題docker
下面來一個個接近此問題shell
其實說簡單也簡單,就是進去正在運行的容器改個文件配置,而後再將這個容器提交成一個鏡像便可,而後跑這個鏡像,再開一個容器,你就會發現,問題已經解決apache
docker exec -it 容器id/容器名字 /bin/bash
apt-get update apt-get install vim
# 進入/docker-java-home/jre/lib/security/文件夾中 cd /docker-java-home/jre/lib/security/ # 修改此文件 vim java.security
而後找到securerandom.source=file:/dev/random
將其修改成vim
securerandom.source=file:/dev/./urandom
exit # 退出後 docker commit -a "Sakura" -m "tomcat start quickly" 此容器ID/名稱 sakura/tomcat:1.2
注 - 這裏仍是解釋下一些屬性tomcat
而後再將提交上去的鏡像運行,就會發現啓動速度提高了很是多!!bash
若是沒有進行這一步,就會發現大大的403 Access Denied 錯誤app
這裏分爲兩步,其實也可能一步就行了,可是個人狀況是作了兩步才之得行的
1.添加一個用戶?(寓意)
和以前同樣,先進去容器中,而後修改conf/tomcat-users.xml文件,在前面添加以下代碼:
<role rolename="manager-gui"/> <user password="admin" roles="manager-gui" username="tomcat"/>
而後再重啓tomcat,固然我這裏又進行了一次提交鏡像,不過先不急,下一步作了再提交也不遲,也能夠先從新啓動這個容器,看看改的效果,若是有效果下一步就不用進行了,若是沒有,就繼續
2. 訪問ip受到限制
那麼此次再接着上面對/webapps/manager/META-INF/context.xml文件進行修改,將裏面的allow後面的內容修改掉,那部分代碼就改爲下面這樣子
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
處理完後,再提交鏡像
docker commit -a "Sakura" -m "tomcat have user and start quickly" optimistic_albattani sakura/tomcat:1.5
再啓動,就搞定了
此次之因此用docker進行配置tomcat是由於不想其與wordpress競爭nginx,可是仔細一想,端口不衝突,或許不會,可是爲了更好管理吧,而此次的操做,也是爲了以後那個小型JavaWeb demo作鋪墊,以前原本準備用 Vue + xxx來寫的,可是涉及Node.js等,想一想仍是算了。