安裝docker
請(qǐng)百度
下載java8鏡像
請(qǐng)百度
創(chuàng)建springboot鏡像
- 準(zhǔn)備好springboot的jar
- 新建Dockerfile文件
FROM java:8
VOLUME /tmp
COPY xxx-1.0.0.jar xxx.jar
RUN bash -c "touch /xxx.jar"
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "xxx.jar", "--server.port=8082"]
- 進(jìn)入Dockfile所在的目錄壁查,創(chuàng)建鏡像:
docker build -t xxx:v1.0.0 .
其中的.表示Dockfile所在的目錄為當(dāng)前目錄 - 查看鏡像是否構(gòu)建成功
docker images
運(yùn)行springboot容器
- 通過(guò)鏡像運(yùn)行容器:
docker run -d -p 8080:8080 \
--name xxx \
--restart=always \
-v /xx/xx:/ss/ss \
-v /xxx/xxx:/aaa/aaa \
xxx:v1.0.0
- 注意:在運(yùn)行docker時(shí)摧冀,映射的目錄和文件必須要提前創(chuàng)建蹲盘,使用
mkdir
和vi
創(chuàng)建愕把。否則會(huì)報(bào)錯(cuò)边臼。
docker常用命令
- 查看運(yùn)行中容器:
docker ps
- 啟動(dòng)容器:
docker start 容器名
- 停止容器:
docker stop 容器名
- 重啟容器:
docker restart 容器名
- 進(jìn)入docker容器:
docker exec -it 容器id
- 啟動(dòng)docker所有容器:
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
- 停止docker所有容器:
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
- 設(shè)置docker開(kāi)機(jī)啟動(dòng):
systemctl enable docker
- 設(shè)置docker一啟動(dòng)就啟動(dòng)容器:
docker update --restart=always 容器ID或者容器名
- 使用on-failure策略時(shí)号胚,指定Docker將嘗試重新啟動(dòng)容器的最大次數(shù)
--restart=on-failure:10 //10次
--restart具體參數(shù)值詳細(xì)信息:
no 容器退出時(shí)街立,不重啟容器啸盏;
on-failure 只有在非0狀態(tài)退出時(shí)才重新啟動(dòng)容器骨田;
always 無(wú)論退出狀態(tài)是如何耿导,都重啟容器;
exp: docker update --restart=always xxx