一、初步了解DockerFile
DockerFile的作用就是將你需要的所有的鏡像打包成一個DockerFile制作成一個全新的鏡像(自定義鏡像),這個鏡像里有可能有配置好的redis和mysql的集群,nginx和tomcat等等。多機房部署只需要運行這個鏡像就好了。
鏡像的定制實際上就是定制每一層所添加的配置、文件。如果我們可以把每一層修改、安裝、構建、操作的命令都寫入一個腳本,用這個腳本來構建、定制鏡像,那么之前提及的無法重復的問題、鏡像構建透明性的問題、體積的問題就都會解決。這個腳本就是 Dockerfile。
Dockerfile 是一個文本文件,其內包含了一條條的指令(Instruction),每一條指令構建一層,因此每一條指令的內容,就是描述該層應當如何構建
二、實踐操作
1.首先我們先創建一個DockerFile
vim Dockerfile
FROM tomcat:latest
COPY ./yxaj.war /usr/local/tomcat/webapps
嗯。。就這兩行。因為我們下載好的tomcat里已經有jdk環境變量了,所以不用配置。我們要做的就是把tomcat鏡像拉下來,然后復制我們的war包到鏡像里的目錄中。
2.接下來我們構建一下。
[root@yxaj ~]#docker build -t tomcat:latest .
docker images 我們的鏡像已經在倉庫中了。
3.啟動鏡像
[root@yxaj ~]# docker run -itd --name web -p 8090:8080 tomcat:latest
注意:我這里遇到了一個坑:報錯如下
解決辦法:
[root@yxaj ~]# vim /usr/lib/sysctl.d/00-system.conf
添加如下代碼:
net.ipv4.ip_forward=1
重啟network服務
[root@yxaj ~]# systemctl restart network
進入容器:
docker exec -it dcc /bin/bash
看到war包確實存在。
那我們來進行訪問測試:
看到上面界面說明成功了。