Dockerfile制作自定义镜像
本文介绍最精简的Dockerfile文件构建镜像,Docker启动的时候可以启动一个shell脚本
1.首先编写Dockerfile文件
说明
1.启动的这个shell脚本一定是不退出的,比如服务器的启动,tomcat或者自己开发的socket服务监听程序等
2.如果是启动的服务有监听IP功能,那么IP需要配置成0.0.0.0,不要配置成127.0.0.1
否则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编译生成镜像
说明:生成的镜像名称是grow,最后一个.表示在当前目录找Dockerfile文件
docker build -t grow .
build之后通过docker images命令查看一下自己生成的image
如果生成的image的REPOSITORY或者TAG属性为空,那么说明build有问题,再观察一下build的日志信息
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
作者 :秋时
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。