docker系列(二)docker file及docker maven

docker file命令解释大全

1. docker file基础指令

dockerfile组成指令
基础镜像指令FROM
维护者信息MAINTAINER
镜像操作指令RUN COPY. ADD、EXPOSE等
容器启动时执行CMD、ENTRYPOINT

2. Dockerfile指令详解

docker file 指令
Dockerfile指令使用说明
FROM第一条指令必须为FROM指令,指定Base镜像
MAINTAINER指定维护者信息
RUN在当前镜像基础上执行指定命令
CMD启动容器时执行的命令
EXPOSEDocker服务端容器暴露的端口号
ENV指定一个环境变量
ADD将复制指定的源路径到容器中的目标路径
COPY复制本地主机的源路径(为Dockerfile所在目录的相对路径)到容器中的目标路径
ENTRYPOINT配置容器启动后执行的命令,并且不可被docker run提供的参数覆盖
VOLUME创建一个可以从本地主机或其他容器挂载的挂载点
USER通过该命令指定运行用户
WORKDIR为后续的RUN、CMD、ENTRYPOINT指令配置工作目录
ONBUILD配置当所创建的镜像作为其它新创建镜像的基础镜像时,所执行的操作指令

1. 使用docker file构建第一个springBoot项目

上传一个apps.jar的springBoot包

2. 编写Dockerfile文件

vim Dockerfile

 Dockerfile内容为下放:

FROM java:8
VOLUME /tmp

ADD apps.jar /apps.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/apps.jar"]

3. 使用docker构建

docker build -t apps .

4. 使用docker 启动镜像

docker run -d -p 8888:8888 --name apps apps

5. 查看容器apps的日志命令:

docker logs -f -t --tail 200 apps

至此helloWord级别的docker的springBoot应用就可以了

2.2 使用env命令传入动态变量供容器使用

这里使用sh脚本的方式传入的ENTRYPOINT的方式未解决传入失效的问题

FROM baseimage
VOLUME /tmp

WORKDIR /usr/website/app
RUN ls
RUN mkdir -p /usr/website/app && \
   cd /usr/website/app
RUN ls
COPY startup.sh /usr/website/app
COPY apps.jar /usr/website/app
RUN chmod +x /usr/website/app/startup.sh
#定义的默认参数
ENV XMSTEST 20M
# 打印一下默认值
RUN echo 'XMSTEST=' $XMSTEST
#启动脚本时要把变量传入
CMD sh /usr/website/app/startup.sh $XMSTEST

#!/bin/bash
XMSTEST=$1
echo "XMSTEST=" ${XMSTEST}
java -Xms:${XMSTEST} -Djava.security.egd=file:/dev/./urandom -jar apps.jar

启动容器即可

#启动命令
docker run -p 8888:8888 -e XMSTEST="90M" -d --name apps apps

3. docker 容器相关操作

当docker run 后相关的images就会成为container

#查看所有container

docker container ls -a 
#通过container id 删除container
docker rm 1c4586fe95ee 

4. docker images相关操作

1. 查看所有镜像

docker image ls 

2. 删除镜像

通过repository删除
docker rmi bigni/test3
 #通过image id 删除
docker rmi e2b5b08cc31c

5.docker  maven

环境:

  1. jdk1.8
  2. maven
  3. docker(最新版)

1:pom.xml增加docker相关插件

<build>
        <finalName>springBootDocker</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.2.0</version>
                <configuration>
                    <imageName>docker-springBoot:v1</imageName>
                    <baseImage>java</baseImage>
                    <entryPoint>["java","-jar","/${project.build.finalName}}.jar"]</entryPoint>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}}</directory>
                            <include>${project.build.finalName}</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>

        </plugins>
    </build>

2:源码包上传到Linux系统

3:使用maven命令构建

mvn clean package docker:build

docker images

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值