一. 製作一個自定義的tomcat的Dockerfile
- 創建文件: index.jsp, 內容爲:
hello docker!
- 創建與index.jsp文件的同級目錄文件: Dockerfile(不能更改名稱), 內容爲:
FROM tomcat
RUN rm -rf webapps/ROOT/*
COPY index.jsp webapps/ROOT/index.jsp
from
: 指定基礎鏡像爲Tomcat, 版本爲最新版
run
在基礎鏡像上加一層鏡像, 執行刪除ROOT文件夾下的所有文件
copy
複製上下文路徑
的index.jsp到ROOT目錄下
注意:
run和copy都使用了相對路徑, 因爲Tomcat鏡像默認的工作目錄爲: /usr/local/tomcat
- 構建鏡像
docker build -t hello-docker .
docker build
構建鏡像命令
-t(tag)
指定鏡像名稱和版本號
.
指定鏡像包上下文
注意:
構建鏡像是docker引擎做的事情, 客戶端需要打包.
所在的文件夾到docker-server, 所以, 如果index.jsp文件在Dockerfile目錄之外(也可以是下級目錄), docker-server就找不到該文件, 就無法進行一些列的操作
- 實例化鏡像, 運行容器
docker run -d --rm -p 8080:8080 <鏡像ID>
-d
後臺運行
--rm
容器停止後, 自動刪除容器
-p
端口映射
- 訪問Tomcat
<宿主機地址>:8080
hello docker!
二. 製作一個自定義的springboot項目的dockerfile
- 上傳項目jar包: springboot-demo-1.0.0-SNAPSHOT.jar 到服務器指定路徑
- 在該目錄下創建Dockerfile, 內容爲:
FROM java:8
COPY springboot-demo-1.0.0-SNAPSHOT.jar app.jar
EXPOSE 8999
CMD java -jar app.jar
expose
暴露端口, 可以暴露多個端口
cmd
當容器啓動時, 執行的命令. 當Dockerfile中多條cmd語句, 默認執行最後一條.
- 構建鏡像
docker build -t springboot-demo .
- 運行容器
docker run -d --name springboot-demo -p 8999:8999 <鏡像ID>
- 訪問Tomcat
<宿主機地址>:8999/path