1.拉取centos鏡像
1
|
docker pull centos:7 |
2.基于拉取到的鏡像運行一個容器
1
|
docker run -it --name mycentos docker.io /centos :7 /bin/bash |
運行起來就直接進入了容器的交互界面
3.容器中安裝jdk
首先查詢可用的jdk版本
1
|
yum search java| grep jdk |
根據搜索到jdk進行安裝
1
|
yum install java-1.7.0-openjdk |
安裝完成之后可以不用配置環境變量,因為安裝完成之后貌似是自動配置好了 使用命令測試jdk是否安裝成功
1
|
java -version |
如果正常顯示jdk的版本號說明安裝成功,然后使用 exit直接退出容器到宿主機
4.安裝tomcat
從官網手動下載tomcat的tar包; 下載完成的文件如: apache-tomcat-7.0.78.tar.gz 將該文件首先上傳到宿主機;可以用FTP等方式,上傳完成后將tomcat包拷貝到docker容器; 拷貝命令:
1
|
docker cp /apache-tomcat-7 .0.78. tar .gz mycentos: /usr |
上面的命令是將tomcat包拷貝到名為mycentos容器的usr目錄下
5.在容器中制作tomcat啟動腳本
進入已經運行的容器
1
|
docker exec -it mycentos /bin/bash |
創建文件
1
|
touch /root/run .sh |
編輯文件
1
|
vi /root/run .sh |
輸入文件內容,保存退出
1
2
3
4
|
#!/bin/bash exprot JAVA_HOME= /usr/lib/jvm/java-1 .7.0-openjdk-1.7.0.141-2.6.10.1.el7_3.x86_64/ export PATH=$JAVA_HOME /bin :$PATH sh /usr/tomcat/bin/catalina .sh run |
JAVA_HOME:jdk的存放目錄,默認為上面命令中的
PATH:不用解釋了
sh:指定tomcat真實啟動的catalina.sh腳本
給run.sh添加權限
1
|
chmod u+x /root/run .sh |
授權完成之后退出容器;使用exit命令退出到宿主機
6.制作tomcat鏡像
1
|
docker commit mycentos mytomcat:7 |
將mycentos容器提交的鏡像倉庫,鏡像名稱為mytomcat,版本號為:7
7.用制作好的tomcat鏡像啟動一個tomcat容器
1
|
docker run -d --name tomcat1 -p 5001:8080 mytomcat:7 /root/run .sh |
使用docker ps可以查看容器是否啟動成功 -d:表示以守護進程方式啟動 --name:指定容器的名稱 -p:將tomcat 8080端口映射到宿主機的5001端口 mytomcat:7:上一步制作好的tomcat鏡像
8.瀏覽器訪問
1
|
http: // 宿主機ip:5001 |
問題1:如何進入一個正在運行的容器
1
|
docker exec -it tomcat1 /bin/bash |
問題2:如何部署項目到tomcat
1
|
docker cp /ROOT .war tomcat1: /usr/tomcat/webapps |
直接在宿主機拷貝Jar包到容器中的tomcat webapps目錄下
問題3:怎么設置docker容器的時區
1
|
cp /usr/share/zoneinfo/PRC /etc/localtime |
直接在容器中執行上面的命令,執行完成后用date命令查看容器時間是否和當前時間一樣
問題4:怎么設置tomcat的時區
1
|
export JAVA_OPTS= "$JAVA_OPTS -Dfile.encoding=UTF8 -Duser.timezone=GMT+08" |
在tomcat/bin/catalina.sh文件中的第一行添加上面的代碼;因為容器中的tomcat與真實的時間差8小時,是時區不一致導致的問題;設置完成后保存退出,然后重啟容器就可以看到時間一樣了
問題5:怎么重啟容器
停止容器
1
|
docker stop tomcat1 |
啟動容器
1
|
docker start tomcat1 |
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
原文鏈接:https://my.oschina.net/ht896632/blog/906937