Dockerfile
FROM registry.cn-hangzhou.aliyuncs.com/wljs-ops/openjdk:8u222-b10-1-deb9u1
#Maintainer
MAINTAINER jason
ENV TZ="Asia/Shanghai"
ENV JVM_ARGS=""
ENV JVM_OPTS="-Xmx2048M -XX:ParallelGCThreads=2"
#mkdir logagent
#RUN mkdir /opt/logagent
RUN mkdir /opt/sensors_data
#add file
COPY ./logagent/ /opt/logagent
#Switch directory
WORKDIR /opt/logagent/
#start java
CMD ["sh", "start.sh"]
FROM : 基礎鏡像 (本機要先下載基礎鏡像)
MAINTAINER: 指定作者
RUN :在容器創建文件夾
COPY:拷貝本機文件到容器
WORKDIR: 用於為 Dockerfile 中所有的 RUN、CMD、ENTRYPOINT、COPY 和 ADD 指定設定工作目錄,其生效范圍為本次定義workdir到下一次定義之間,且還會影響到進入容器時的目錄
CMD:容器啟動后執行命令
start.sh
#!/bin/bash echo "starting ......" nohup /opt/logagent/bin/logagent >/dev/null 2>&1 & filelist=$(ls | egrep '*.jar') for file in $filelist do P_ID=`ps -ef | grep -w "$file" | grep -v "grep" | awk '{print $2}'` if [ "$P_ID" != "" ]; then echo "=== $file start success" echo "$P_ID" else echo "=== $file start failure" fi done while [ true ]; do sleep 1 done
創建一個名為Jason123的新鏡像
docker build -t Jason123:v1.0 .