docker 部署一個tomcat網站

一、docker的安裝

1、使用yum安裝Docker

sudo yum install docker
2、啓動Docker

service docker start
3、設置開機啓動docker

systemctl enable docker
4、查看docker是否安裝成功

docker info
5、重啓docker

sudo service docker restart
 

二、tomcat和應用的安裝

安裝和啓動

#查找tomcat服務器的信息  docker search tomcat

#下載tomcat鏡像並部署  docker pull tomcat

#查詢鏡像 docker images 

查看運行的 docker進程  docker ps


#啓動tomcat(掛載的方式)

docker run -p 8080:8080 --name mytomcat -d -v /aaa/app1:/usr/local/tomcat/webapps  tomcat:latest

使用docker鏡像tomcat 以後臺模式啓動一個容器,並將容器命名爲mytomcat 端口對應是8080對8080 

 

#啓動tomcat(複製的方式)

docker run -p 8080:8080 --name mytomcat tomcat:latest

docker cp /aaa/app1 mytomcat :/usr/local/tomcat/webapps

docker restart mytomcat

 

測試環境可以這麼弄,因爲文件可能隨時會變化

進入容器

 docker exec -it tomcat /bin/bash

 

正式環境變化不大,直接製作成一個鏡像。

1、創建Dockfile(文件一定要是這個名字)

vim Dockerfile

FROM tomcat:latest
COPY xxxxxx/ /usr/local/tomcat/webapps/xxxxxx

2、生成新的鏡像

 docker build -t tomcat-demo:v1 .

3、啓動新的鏡像 (tomcat-demo要寫在最後面)

docker run -p 8080:8080 -d tomcat-demo:v1

 

方便查看日誌

docker run -p 8080:8080 -d -v /aaa/logs:/usr/local/tomcat/logs  tomcat-demo:v1

 

參考:https://blog.csdn.net/baidu_38432732/article/details/81081819

 

 

碰到的問題

1、文件名字必須爲Dockerfile。否則執行的時候可能會報一下異常:

unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /var/apps/Dockerfile: no such file or directory

2、使用當前目錄的方式,否則報錯. dockfile 文件找那個寫 /data/dockfiles/xxxxx/ 報錯。改爲 xxxxx/ 就好了。

Step 2/2 : COPY /data/dockfiles/xxxxx/ /usr/local/tomcat/webapps
COPY failed: stat /var/lib/docker/tmp/docker-builder805782110/data/dockfiles/xxxxx: no such file or directory

參考:https://www.cnblogs.com/sparkdev/p/9573248.html

3、生成新鏡像成功了,但是運行進程時,發現沒有對應的文件夾,檢查發現,是因爲Dockerfile寫錯了。copy只會複製目錄中的內容而不包含目錄自身,需要複製目錄自身的話,需要對應後面的目錄也加上對應的應用。

COPY /data/dockfiles/xxxxx/ /usr/local/tomcat/webapps  改爲 COPY /data/dockfiles/xxxxx/ /usr/local/tomcat/webapps/xxxxx

4.映射了日誌路徑,但是看不到,仔細檢查下路徑,可能是路徑錯了,不報錯,但是實際就是啥也不顯示

 

好處:

1、新環境不用裝jdk,配置環境等操作

2、進程獨立,所以相互不影響?

 

內存佔用測試了一個實例,同樣的機器,一個放容器裏,一個按以前的方式。容器方式是900多M,以前方式是800多M,內存佔用差距不大。

 

docker top 容器名  查出容器中對應的進程
 

已經啓動了如下命令

docker run -p 8888:8080 --name xxxxx -d -v /data/dockfiles/webapps/:/usr/local/tomcat/webapps tomcat
怎麼追加日誌目錄映射?

搜索 “docker  動態添加掛載” 貌似不好實現。

還是移除掉,重新加命令吧(修改命令需要移除,停止不行)。多個目錄映射   -v  xxx:/xxxx   -v yyy:/yyy

 

 

直接利用docker 容器和項目中應用docker  maven包的區別?

利用maven包 可以直接推到鏡像倉庫中,不用使用docker自帶的功能,編寫腳本進行打包。省掉一步。

jenkins還是要用

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章