本文介绍最精简的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