【docker】Dockerfile
转载:
=============================================================
=============================================================
命令
ARG 定义创建镜像过程中使用的变量 ARG <name>[=<defaul value>] 在执行docker build时,可以通过-build-arg[=]来为变量赋值 FROM 指定所创建镜像的基础镜像 FROM <image> [AS <name>] FROM <image>:<tag> [AS <name>] FROM <image>@<digest> [AS <name>] LABEL 为生成的镜像添加元数据标签信息 LABEL <key>=<value> <key>=<value> <key>=<value> EXPOSE 声明镜像内服务监听的端口 EXPOSE <port> [<port>/<protocol>...] ENV 指定环境变抵 ENV <key> <value> ENTRYPOINT 指定镜像的默认入口命令 ENTRYPOINT ["executable", "param1 ", "param2"]: exec 调用执行 ENTRYPOINT command param1 param2: shell 中执行 VOLUME 创建一个数据卷挂载点 VOLUME ["/data"] USER 指定运行容器时的用户名或UID USER daemon WORKDIR 配置工作目录 WORKDIR /path ONBUILD 创建子镜像时指定自动执行的操作指令 STOPSIGNAL 指定退出的信号值 HEALTHCHECK 配置所启动容器如何进行健康检查 SHELL 指定默认shell类型 SHELL [” executable”,”parameters ”]默认值为["/bin/sh","-c"] RUN 运行指定命令 RUN <command> RUN ["executable","param1","param2"] CMD 启动容器时指定默认执行的命令 CMD ["executable","param1","param2"] CMD command paraml param2 CMD ["param1","param2"] ADD 添加内容到镜像 ADD <src> <dest> COPY 复制内容到镜像 COPY <src> <dest>
拉去官方 java8 镜像
docker pull java:8
方式一
打包 spring boot 应用
编辑 Dockerfile
FROM java:8 LABEL maintainer ycx VOLUME /tmp ADD demo-service-0.0.1.jar demo.jar RUN sh -c 'touch /demo.jar' EXPOSE 9900 ENV JAVA_OPTS="" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /demo.jar" ]
加了 EXPOSE 9900 后 -P 才能随机分配端口
FROM java:8 LABEL author=ycx VOLUME /tmp RUN mkdir /ycx COPY demo-service-0.0.1.jar /ycx/demo.jar EXPOSE 9900 ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/ycx/demo.jar"]
命令格式
docker build [options] path
使用.当前目录的 Dockerfile 创建镜像,标签为 ycx/demo:1
docker build -t ycx/demo:1 .
也可指定文件
docker build -t ycx/demo:1 -f /ycx/Dockerfile .
docker run -d -p 0.0.0.0::9900 --name demo demo-service
方式二