目录

一、dockerfile文件作用

二、案例使用

2.1 准备一个App.java文件 功能就是每5秒输出一句话。

2.2  在虚拟机/opt里新建一个demo文件夹(名字随意) 然后将App.java复制进去,同时新建一个dockerfile文件,将下面内容复制进去。

2.3 构建镜像

三、CMD和ENTRYPOINT的区别


一、dockerfile文件作用

    Dockerfile 是一个文本文件,开发者使用它来定义如何构建一个Docker镜像。它是自动化构建Docker镜像的标准方法,包含了用于构建镜像的一系列指令,这些指令会被Docker引擎按顺序逐行解析并执行。

二、案例使用

2.1 准备一个App.java文件 功能就是每5秒输出一句话。

import java.util.Timer;
import java.util.TimerTask;
public class App {

    public static void main(String[] args) {
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                System.out.println("running");
            }
        },5000,5*1000);
        
    }

}

2.2  在虚拟机/opt里新建一个demo文件夹(名字随意) 然后将App.java复制进去,同时新建一个dockerfile文件,将下面内容复制进去。

# 基础镜像
FROM openjdk:8
# 作者
LABEL maintainer="heimi"
# 工作目录
WORKDIR /opt
# 复制文件
COPY . /opt/
# 编译java类
RUN javac App.java
# 运行java类
#CMD ["java", "App"]
ENTRYPOINT [ "java", "App" ]

这个示例Dockerfile的功能是构建一个基于OpenJDK 8镜像的Docker镜像。它的构建过程包括以下步骤:

1. 使用 FROM 指令指定基础镜像,这里使用的是OpenJDK 8镜像。

2. 使用 WORKDIR 指令设置工作目录为 /opt ,后续的操作都在这个目录下进行。

3. 使用 COPY 指令将当前目录下的所有文件复制到容器的 /opt 目录下。

4. 使用 RUN 指令在容器中执行命令,这里是使用javac编译App.java文件。

5. 使用 CMD 指令在容器启动时执行命令,这里是执行Java应用程序。

通过以上步骤,我们可以使用该Dockerfile构建一个包含Java应用程序的镜像,并在容器启动时执行Java应用程序。

2.3 构建镜像

当你有了上述的Dockerfile文件后,你可以使用 docker build 命令来构建Docker镜像。以下是使用 docker build 命令的示例:

1. 首先,打开终端并进入包含Dockerfile的目录。

 2.运行以下命令来构建镜像

 docker build -t myapp:v2 .

解释:

-t myapp:v1 :指定构建的镜像名称为 myapp:v1 ,你可以自定义镜像名称。

. :表示Dockerfile所在的当前目录。

3.然后将使用docker images 来查看构建的镜像是否成功。

三、CMD和ENTRYPOINT的区别

    CMD 指令用于设置默认的容器启动命令,而 ENTRYPOINT 指令用于设置始终执行的命令。 ENTRYPOINT 指令更适合用于定义容器的主要执行逻辑,而 CMD 指令则更适合用于提供默认参数或允许在运行容器时动态修改命令。 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐