Dockerfile制做自定义镜像

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