Docker学习3.0-Dockerfile自定义镜像

Docker学习3.0-Dockerfile自定义镜像

  • Dockerfile自定义镜像
    • 1. 镜像结构
    • 2. Dockerfile语法
    • 3. 构建Java项目
    • 最后

Dockerfile自定义镜像

1. 镜像结构

组成

  • 镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。

结构

  • 基础镜像层 Entrypoint(依赖的系统函数库、环境、配置、文件等)
  • 其他层 Layer (添加安装包、依赖、配置等,每次操作都形成新的一层)
  • 镜像运行入口 BaseImages(一般是程序启动的脚本和参数)

2. Dockerfile语法

Dockerfile是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像,每一个指令都会形成一层Layer。

| 指令 | 说明 | 示例 |

| FROM | 指定基础镜像 | FROM centos:6 |

|ENV| 设置环境变量 | ENV key value |

|COPY| 拷贝本地文件到镜像的指定目录 | COPY ./mysql-5.7.rpm /tem |

|RUN| 执行Linux的shell命令,一般是安装过程的命令 | RUN yum install gcc |

| EXPOSE | 指定容器运行时监听的端口,时镜像使用者看的 | EXPOSE 8080 |

| ENTRYPOINT | 镜像中应用的启动命令,容器运行时调用 | ENTRYPOINT java -jar xx.jar |

3. 构建Java项目

  1. Java JDK
  2. JavaWeb
  3. Dockefile
  4. 构建镜像并启动

1 Java JDK
5. 自行下载

2 JavaWeb

# pom文件添加 finalName 指定打包名称
    <build>
        <finalName>demofinalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            plugin>
        plugins>
    build>

3 Dockefile文件

# 指定基础镜像
FROM centos:centos7

# 配置环境变量,JDK的安装目录 一般安装在此目录
ENV JAVA_DIR=/usr/load

# 拷贝jdk和java项目包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./demo.jar /home/youwhua/javaweb/docker01/docker-demo.jar

# 安装JDK
RUN cd $JAVA_DIR \
 && tar -xf ./jdk8.tar.gz \
 && mv ./jdk1.8.0_144 ./java8

# 配置环境变量,JDK的安装目录
ENV JAVA_HOME=$JAVA_DIR/java8
ENV PATH=$PATH:$JAVA_HOME/bin

# 暴露端口 与Java代码中保持一致
EXPOSE 8080

# 入口,Java项目的启动命令
ENTRYPOINT java -jar /home/youwhua/javaweb/docker01/docker-demo.jar

4 构建镜像并启动

# 构建 -t 镜像名 . Dockefile所在的目录
docker build -t docker01:1.0 .
# 启动             容器名                    镜像名
docker run --name docker01 -p 8081:8080 -d docker01:1.0

最后

以上是学习 黑马程序员《微服务技术全栈教程》的学习笔记

你可能感兴趣的:(docker,学习,java)