1、Docker快速部署項(xiàng)目Springboot
1.1 了解Dockerfile的文件編寫規(guī)范
FROM 指定父鏡像: ?基于哪個(gè)鏡像image構(gòu)建 ?指定基礎(chǔ)鏡像,必須為第一個(gè)命令
MAINTAINER:維護(hù)者
RUN: 容器創(chuàng)建的時(shí)候執(zhí)行一段命令 ??構(gòu)建鏡像時(shí)執(zhí)行的命令
ADD: 將本地文件添加到容器中,tar類型文件會(huì)自動(dòng)解壓(網(wǎng)絡(luò)壓縮資源不會(huì)被解壓),可以訪問(wèn)網(wǎng)絡(luò)資源,類似wget
COPY:功能類似ADD,但是是不會(huì)自動(dòng)解壓文件,也不能訪問(wèn)網(wǎng)絡(luò)資源
CMD:構(gòu)建容器后調(diào)用,也就是在容器啟動(dòng)時(shí)才進(jìn)行調(diào)用。 .sh執(zhí)行文件
ENV: 設(shè)置環(huán)境變量
EXPOSE: 指定于外界交互的端口
VOLUME用于指定持久化目錄
WORKDIR 設(shè)置進(jìn)入容器時(shí)的路徑 默認(rèn)訪問(wèn)的目錄
1.2 制作Dockerfile文件
1. 使用 命令創(chuàng)建dockerfile文件: touch dockerfile
2.準(zhǔn)備好jar包需要與dockerfile文件在同一個(gè)目錄

我的Dockerfile文件內(nèi)容:
[
# 基礎(chǔ)鏡像使用java
FROM java:8
# 作者
MAINTAINER dengdong
# VOLUME 指定了臨時(shí)文件目錄為/tmp。
# 其效果是在主機(jī) /var/lib/docker 目錄下創(chuàng)建了一個(gè)臨時(shí)文件,并鏈接到容器的/tmp
VOLUME /tmp
# 將jar包添加到容器中并更名為metadata.jar
ADD comeon2021-0.0.1-SNAPSHOT.jar comeon2021.jar
# 運(yùn)行jar包
RUN bash -c 'touch /comeon2021.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/comeon2021.jar"]
#暴露7894端口
EXPOSE 7894
]

3.將dockerfile構(gòu)建成一個(gè)鏡像
命令:
docker build -f dockerfile文件 -t dockerfile里面的jar包文件:1 .
docker build -f dockerfile -t metadata-management:1 .
命令尾部有空格加點(diǎn)!

4.使用鏡像命令對(duì)進(jìn)行操作并運(yùn)行
4.1 查詢鏡像命令:docker images

4.2 使用docker命令進(jìn)行運(yùn)行該鏡像命令:docker run -d -p 7894:7894 鏡像id

4.3 使用docker命令查詢?nèi)萜鬟\(yùn)行情況
命令:docker ps(列出當(dāng)前所有正在運(yùn)行的容器)和docker ps -a(列出所有的容器)

4.4 可以使用服務(wù)器加端口進(jìn)行訪問(wèn)了,案例訪問(wèn):http://192.168.1.100:7894/項(xiàng)目,完畢!
如出現(xiàn)以下情況請(qǐng)使用該命令進(jìn)行運(yùn)行:

出現(xiàn)原因:-p命令映射端口的時(shí)候防火墻攔截,這種方式解決問(wèn)題有兩種方式:
第一種:
docker run -d --net=host 鏡像id
第二種:
在防火墻里面設(shè)置這個(gè)端口,然后重啟防火墻,重啟docker