Docker化-构建Springboot的镜像
准备SpringBoot项目
Dockerfile常用命令
FROM <image>
FROM <image>:<tag>
FROM <image>@<digest>
MAINTAINER <author>
RUN cmd arg1 arg2
RUN ["cmd", "arg1", "arg2"]
- CMD — 容器启动时要运行的命令,可显式指定命令覆盖,只能使用一次
CMD ["cmd", "arg1", "arg2"] (exec)
CMD cmd arg1 arg2 (shell)
CMD ["arg1", "arg2"]
- ENTRYPOINT —启动时的默认命令,如设置,则CMD为其参数
ENTRYPOINT ["cmd", "arg1", "arg2"] (exec)
ENTRYPOINT cmd arg1 arg2 (shell)
VOLUME ["dir1", "dir2",...]
VOLUME dir1 dir2 ...
ADD <src> ... <dest>
ADD ["<src>", ... "<dest>"]
COPY <src> ... <dest>
COPY ["<src>", ... "<dest>"]
USER username:group
USER uid:gid
WOKRDIR dir
EXPOSE <port> [<port>...]
LABEL <key>=<value> <key>=<value> <key>=<value> ...
ENV <key> <value>
ENV <key>=<value>... --- 可以一次指定多个变量
ONBUILD [instruction]
SpringBoot的Dockerfile
FROM maven:3.3.3
ADD pom.xml /tmp/build/
RUN cd /tmp/build && mvn -q dependency:resolve
ADD src /tmp/build/src
RUN cd /tmp/build && mvn -q -DskipTests=true package \
&& mv target/*.jar /app.jar \
&& cd / && rm -rf /tmp/build
VOLUME /tmp
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
构建Docker镜像
docker build -t [项目名] .
docker run -d -p 8080:8080 [项目名]
curl http:
项目地址