DOCKERFILE 打包镜像
FROM registry.cn-hangzhou.aliyuncs.com/wljs-ops/openjdk:8u222-b10-1-deb9u1
#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
f
i
l
e
l
i
s
t
d
o
P
I
D
=
‘
p
s
−
e
f
∣
g
r
e
p
−
w
"
filelist do P_ID=`ps -ef | grep -w "
filelistdoPID=‘ps−ef∣grep−w"file" | grep -v “grep” | awk '{print KaTeX parse error: Expected 'EOF', got '}' at position 2: 2}̲'` if [ "P_ID" != “” ]; then
echo “===
f
i
l
e
s
t
a
r
t
s
u
c
c
e
s
s
"
e
c
h
o
"
file start success" echo "
filestartsuccess"echo"P_ID”
else
echo “=== $file start failure”
fi
done
while [ true ]; do
sleep 1
done
######################################
以上内容较复杂
可以改为:
dockerfile内容如下
注:本地服务器应创建好相应的目录文件
FROM azul/zulu-openjdk:8
VOLUME /tmp
ADD mall-admin-1.0-SNAPSHOT.jar app.jar
COPY /data/app/logs /var/admin/logs
RUN bash -c ‘touch /app.jar’
ENTRYPOINT [“sh”, “-c”, “java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar”]
docker build -t springbootdemo/v1
然后再docker images
就可以看到springbootdemo的镜像
然后是docker run -p 8081:8080 --name mall-admin -v ------------------------设置端口、挂载等
启动容器后,可以docker exec -it mall-admin bin/bash 进入容器
初学之人,请多多指教