經歷了學習springboot,又經歷學習了基於springboot的springcloud微服務開發
學習就要有所沉澱,記錄一下學習踩坑之旅。
上一篇博客介紹瞭如何部署安裝docker以及相關服務環境的配置,傳送門:
https://blog.csdn.net/romanticRose/article/details/101351679
常用的docker命令:
查看鏡像:docker images -a
停止鏡像:docker stop $(docker ps -a -q)
刪除鏡像:docker rmi <imageid>
查看容器:docker ps
刪除容器:docker rm 容器id
啓動服務:docker start ace-dbxt(container容器id)
服務交互:docker attach ace-dbxt
構建鏡像:docker build -t ace-dbxt .(示例)
運行鏡像:docker run -d --network host --name ace-dbxt -p 8763:8763 -p 9423:9423 -it -v /etc/localtime:/etc/localtime:ro ace-dbxt8763 /bin/bash
--network:host方式啓動
--name: 服務名
-p: 開放端口
部署安裝springcloud服務
首先需要準備maven打好的服務jar包以及配置dockerfile文件
Dockerfile 文件
FROM hub.c.163.com/library/java:8-alpine
VOLUME /tmp
ADD ace-center.jar app.jar ###服務jar包
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
EXPOSE 8761 ###開放端口
進入服務路徑目錄 執行命令構建docker鏡像(示例)
cd 服務路徑 --> docker build -t ace-center8761 .
注意:命令結尾的.代表同級目錄
Host方式啓動鏡像
docker run -d --network host --name ace-center -p 8761:8761 -it ace-center8761 /bin/bash
驗證服務即可,其他微服務往註冊中心註冊相同操作;
開發部署問題整理
修改docker容器時間
n -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
echo "Asia/Shanghai" > /etc/timezone
解決docker下啓動jar包服務時間不同步
修改dockerfile文件
FROM hub.c.163.com/library/java:8-alpine
VOLUME /tmp
ADD ace-dbxt.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","-Duser.timezone=GMT+08","/app.jar"]
EXPOSE 8763
解決docker鏡像字體問題
FROM hub.c.163.com/library/java:latest
VOLUME /tmp
ADD ace-workflow-1.0-SNAPSHOT.jar app.jar
#拷貝字體文件
COPY ./simsun.ttf /usr/share/fonts/simsun.ttf
#設置字符集
ENV LANG en_US.UTF-8
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
EXPOSE 8082
首先找到字體文件放置到jar包同級目錄下 (此項目中添加的是黑體字體,具體字體文件如何獲取網上可查找)
不積硅步無以至千里,不積小流無以成江海。