DockerFile的簡單使用製作tomcat war包映象
思考:假設我們要部署一套環境,多個機房部署,你會怎麼做?一個一個遠端安裝jdk,mysql,redis等等。。好麻煩是不是?那DockerFile就幫你解決了這個問題。
一、初步瞭解DockerFile
DockerFile的作用就是將你需要的所有的映象打包成一個DockerFile製作成一個全新的映象(就是對映象的定製),這個映象裡有可能有配置好的redis和mysql的叢集,nginx和tomcat等等。多機房部署只需要執行這個映象就好了。
映象的定製實際上就是定製每一層所新增的配置、檔案。如果我們可以把每一層修改、安裝、構建、操作的命令都寫入一個指令碼,用這個指令碼來構建、定製映象,那麼之前提及的無法重複的問題、映象構建透明性的問題、體積的問題就都會解決。這個指令碼就是 Dockerfile。
Dockerfile 是一個文字檔案,其內包含了一條條的指令(Instruction),每一條指令構建一層,因此每一條指令的內容,就是描述該層應當如何構建
二、實踐操作
還是用我們上一章的專案檢視上一篇文章,我們要把war包和tomcat打包成一個映象。
①首先我們先建立一個DockerFile
vi Dockerfile
嗯,這樣一個DockerFile就建立完了....當然我們要寫點東西。
嗯。。就這兩行。因為我們下載好的tomcat裡已經有jdk環境變量了,所以不用配置。我們要做的就是把tomcat映象拉下來,然後複製我們的war包到映象裡的目錄中。
②接下來我們構建一下。
docker build -t diy_tomcat .
docker images 我們的映象已經在倉庫中了。
我們現在進這個diy_tomcat中看看我們的war包是否在裡邊。
③啟動映象
我們之前啟動tomcat還要掛載war包,我們現在把war包和tomcat搞到了一起,製作了一個新的映象,就不要掛載了 不過--link還是不能少的。
docker run --name docker_diy_tomcat -p 8082:8080 -d --link docker_redis:docker_redis--link docker_mysql:docker_mysql c79901aa11f0
我們成功起來了,下面我們進入這個容器中看看war包是否真的存在呢?
④進入容器
docker exec -it docker_diy_tomcat bash
看來確實存在的。
那我們測試來看看
是的我們成功了。