本文介紹最精簡的Dockerfile文件構建鏡像,Docker啓動的時候能夠啓動一個shell腳本docker
1.首先編寫Dockerfile文件shell
說明緩存
1.啓動的這個shell腳本必定是不退出的,好比服務器的啓動,tomcat或者本身開發的socket服務監聽程序等tomcat
2.若是是啓動的服務有監聽IP功能,那麼IP須要配置成0.0.0.0,不要配置成127.0.0.1bash
不然curl的時候會出現:curl: (7) Failed to connect to localhost port 6230: Connection refused服務器
FROM openjdk:8-jre-alpine #設置Docker容器內部想放的程序的目錄 WORKDIR /netsharp #複製當前目錄到Docker目錄 COPY ./netsharp-grow /netsharp/grow #安裝bshell,不使用本地的緩存,apk是alpine的包管理器 RUN apk add --no-cache bash #程序啓動的時候執行netsharp-grow腳本 CMD /netsharp/grow/bin/netsharp-grow
2.docker編譯生成鏡像curl
說明:生成的鏡像名稱是grow,最後一個.表示在當前目錄找Dockerfile文件socket
docker build -t grow .
build以後經過docker images命令查看一下本身生成的imageui
若是生成的image的REPOSITORY或者TAG屬性爲空,那麼說明build有問題,再觀察一下build的日誌信息url
3.運行Docker容器
docker run -p 2552:2552 -p 6230:6230 --name grow -d grow
4.常見問題
UTC時區改爲上海時區
ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone