拉取 Java 執行環境
docker pull hub.c.163.com/library/java:8
複製程式碼
建立 Dockerfile 檔案
FROM hub.c.163.com/library/java:8
# 定義變數
ENV VERTICLE_FILE vertx-kt-3.5.0-fat.jar
ENV VERTICLE_CONFIG config.json
ENV VERTICLE_HOME /usr/verticles
ENV VERTICLE_LOG /usr/verticles/logs
EXPOSE 8080
# 從主機 copy 到容器裡面
COPY $VERTICLE_FILE $VERTICLE_HOME/
COPY $VERTICLE_CONFIG $VERTICLE_HOME/
WORKDIR $VERTICLE_HOME
ENTRYPOINT ["sh", "-c"]
CMD ["java -Dvertx.logger-delegate-factory-class-name=io.vertx.core.logging.Log4j2LogDelegateFactory -jar $VERTICLE_FILE -conf $VERTICLE_CONFIG"]
複製程式碼
這裡執行的是 Vert.x jar 所以命令列啟動引數較長
build
docker build -t helloworld:1.0 .
複製程式碼
注意後面有個 .
表示當前目錄,相關 jar和配置檔案都在當前目錄下。
檢視自己製作的映象
docker images
複製程式碼
執行映象
docker run -d -p 8080:8080 -v /root/demo/log:/usr/verticles/logs helloworld:1.0
複製程式碼
-v
後面表示對映檔案路徑:
前面表示本機路徑,後面表示容器內的路徑-d
表示在後臺執行-p
表示埠對映
遇到的問題
日誌列印出的時間不對,需要在執行的時候加一個引數就可以了
docker run -d -p 8080:8080 -v /etc/localtime:/etc/localtime:ro -v /root/demo/log:/usr/verticles/logs helloworld:1.0
複製程式碼