一. 在winows
安裝docker 叉寂。
安裝exe文件后萍启,可以在命令行中執(zhí)行
docker
命令。但pull鏡像時會報錯屏鳍。
image.png
這是因為docker需要開始守護(hù)進(jìn)程勘纯。手動開啟docker服務(wù)。開啟服務(wù)的同時钓瞭。也要保證docker客戶端在運(yùn)行驳遵。
image.png
二. 編寫dockerFile文件,構(gòu)建鏡像
這是我寫的dockerfile文件山涡。比較簡單
FROM java:openjdk-8-jre-alpine
EXPOSE 12315
ENV LANG C.UTF-8
VOLUME /tmp
ADD target/app-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
構(gòu)建鏡像
docker build -t app .
docker build
-t : 指定鏡像名稱
. : 表示dockerfile所在的目錄堤结。
構(gòu)建的鏡像可以使用命令
docker images
查看
image.png
運(yùn)行鏡像
docker run -d -p 12325:12315 app -e --spring.profiles.active=prod
-d :后臺運(yùn)行
-p :指定端口
12325:12315 :前邊表示宿主機(jī)的端口唆迁。后邊表示docker容器的端口。
app :鏡像名稱竞穷。也可以使用鏡像id
-e: 向啟動的容器內(nèi)傳入環(huán)境變量唐责。在我使用過程中發(fā)現(xiàn)好像只有寫在結(jié)尾處才有用。
docker run -d -p 12315:12315 -e --spring.profiles.active=prod app 這樣寫的話来庭,環(huán)境變量就沒有設(shè)置成功。
使用docker container ls
查看正在運(yùn)行的容器
image.png
進(jìn)入容器內(nèi)部
可能是我制作的鏡像不標(biāo)準(zhǔn)穿挨。在使用
docker exec -it a8fb5707f30a /bin/bash
嘗試進(jìn)入容器時月弛。報錯了。
最后通過docker exec -it a8fb5707f30a sh
進(jìn)入到容器了
進(jìn)入容器報錯
成功進(jìn)入容器
鏡像正常運(yùn)行的截圖
這里的env
是我用來測試設(shè)置環(huán)境變量的科盛。通過 -e --spring.profiles.active=prod
成功將springboot項目以prod
模式啟動帽衙。說明 -e
的命令生效了。 如果需要設(shè)置多個變量贞绵。使用空格分開即可厉萝。
docker run -d -p 12325:12325 app -e --spring.profiles.active=prod --server.port=12325
這樣就讓容器以端口12325 。prod模式運(yùn)行榨崩。
- image.png
三. 將鏡像上傳到遠(yuǎn)程倉庫谴垫。
我選擇的是阿里云庫。需要提前在阿里云開通容器鏡像服務(wù)母蛛,創(chuàng)建命名空間和鏡像等操作翩剪。
在阿里云創(chuàng)建鏡像后,根據(jù)阿里文檔的指引很容易就可以將鏡像上傳彩郊。
有點(diǎn)需要注意前弯。就是生成tag的時候選擇阿里的公網(wǎng)地址。 如果你是阿里ecs就不用管這些了秫逝。
四.鏡像的持續(xù)更新和維護(hù)
正在使用中恕出。。违帆。浙巫。