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 启动容器时执行的命令
EXPOSE Docker服务端容器暴露的端口号
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

猜你喜欢

转载自blog.csdn.net/qq_38130094/article/details/114535738