Flink Docker file制作

文章详细介绍了如何使用Dockerfile定义Flink环境,包括添加依赖JAR包,设置权限,并构建Docker镜像。接着讨论了在Kubernetes中遇到的问题,如ErrImagePull异常,以及如何解决,包括配置registry以允许不安全连接和修改DockerRegistry。最后,提到了FlinkSession集群的Kubernetes部署过程。

1 Dockerfile,需要定义一个Dockerfile,Dockerfile定义了进程需要的一切东西。Dockerfile涉及的内容包括执行代码或者是文件、环境变量、依赖包、运行时环境、动态链接库、操作系统的发行版、服务进程和内核进程(当应用进程需要和系统服务和内核进程打交道,这时需要考虑如何设计namespace的权限控制)等等;
2 Docker镜像,在用Dockerfile定义一个文件之后,docker build时会产生一个Docker镜像,当运行 Docker镜像时,会真正开始提供服务;
3 Docker容器,容器是直接提供服务的。

1、文件名要小写

 2、

$ docker build -t mybuilder:v1 -f ./build/Dockerfile .

//-t:指定新建的Dockerfile名称

//-f:指定该dockerfile的位置

 3、docker build -t flink16 -f /opt/dockerfile/flinkdockerfile .

4、docker images

5、 flink docker代码

flink-docker/1.15/scala_2.12-java8-ubuntu/Dockerfile at master · apache/flink-docker · GitHub

 # 使用官方的 Flink 基础镜像作为基础
FROM flink:1.14.6
#
## 定义工作目录
WORKDIR /opt/flink/lib
#
# 将本地依赖的 JAR 包添加到目录
COPY /opt/flink/flink-1.14.6/lib/dlink-client-1.14-0.7.3.jar .
COPY /opt/flink/flink-1.14.6/lib/dlink-client-base-0.7.3.jar .
COPY /opt/flink/flink-1.14.6/lib/dlink-common-0.7.3.jar .
COPY /opt/flink/flink-1.14.6/lib/dlink-metadata-base-0.7.3.jar .
COPY /opt/flink/flink-1.14.6/lib/dlink-metadata-doris-0.7.3.jar .
COPY /opt/flink/flink-1.14.6/lib/dlink-metadata-mysql-0.7.3.jar .
COPY /opt/flink/flink-1.14.6/lib/dlink-metadata-sqlserver-0.7.3.jar .
COPY /opt/flink/flink-1.14.6/lib/druid-1.2.8.jar .
COPY /opt/flink/flink-1.14.6/lib/flink-connector-jdbc_2.12-1.14.6.jar .
COPY /opt/flink/flink-1.14.6/lib/flink-dist_2.12-1.14.6.jar .
COPY /opt/flink/flink-1.14.6/lib/flink-doris-connector-1.14_2.12-1.1.1.jar .
COPY /opt/flink/flink-1.14.6/lib/flink-faker-0.5.3.jar .
COPY /opt/flink/flink-1.14.6/lib/flink-shaded-guava-30.1.1-jre-16.0.jar .
COPY /opt/flink/flink-1.14.6/lib/flink-shaded-hadoop-3-uber-3.1.1.7.2.9.0-173-9.0.jar .
COPY /opt/flink/flink-1.14.6/lib/flink-sql-connector-mysql-cdc-2.3.0.jar .
COPY /opt/flink/flink-1.14.6/lib/flink-sql-connector-sqlserver-cdc-2.3.0.jar .
COPY /opt/flink/flink-1.14.6/lib/flink-table_2.12-1.14.6.jar .
COPY /opt/flink/flink-1.14.6/lib/HikariCP-4.0.3.jar .
COPY /opt/flink/flink-1.14.6/lib/jackson-datatype-jsr310-2.13.4.jar .
COPY /opt/flink/flink-1.14.6/lib/mysql-connector-java-8.0.28.jar .

然后执行命令

docker build -t flink14 -f /opt/dockerfile/flinkdockerfile .

 COPY 指令将从构建上下文目录中 <源路径> 的文件/目录复制到新的一层的镜像内的 <目标路径> 位置。

<目标路径> 可以是容器内的绝对路径,也可以是相对于工作目录的相对路径(工作目录可以用 WORKDIR 指令来指定)。

目标路径不需要事先创建,如果目录不存在会在复制文件前先行

创建缺失目录。

COPY <源路径>... <目标路径>

COPY ["<源路径1>",... "<目标路径>"]

正确:

COPY ./package.json /app/

COP

以下是一个使用Docker部署Apache Flink 1.12的示例。 1. 首先,您需要安装DockerDocker Compose。如果您没有安装,请参阅官方文档以获取说明。 2. 创建一个名为“flink”的新文件夹。 3. 在“flink”文件夹中创建一个名为“docker-compose.yml”的新文件,并添加以下内容: ``` version: "3.8" services: jobmanager: image: flink:1.12 expose: - "8081" command: jobmanager environment: - JOB_MANAGER_RPC_ADDRESS=jobmanager taskmanager: image: flink:1.12 depends_on: - jobmanager command: taskmanager environment: - JOB_MANAGER_RPC_ADDRESS=jobmanager ``` 该文件定义了两个服务:jobmanager和taskmanager。jobmanager是Flink作业管理器,taskmanager是Flink任务管理器。jobmanager暴露了端口8081,以便您可以通过Web界面查看Flink集群的状态。 4. 运行以下命令来启动Flink集群: ``` docker-compose up -d ``` 该命令会启动两个Docker容器,一个作为jobmanager,另一个作为taskmanager。 5. 在浏览器中打开以下网址,以查看Flink Web界面: ``` http://localhost:8081 ``` 您应该能够看到Flink集群的状态。 6. 现在,您可以将您的Flink作业提交到集群中。您可以使用以下命令来提交一个简单的WordCount作业: ``` docker run --rm -t flink:1.12 \ ./bin/flink run ./examples/batch/WordCount.jar \ --input file:///opt/flink/README.txt \ --output file:///opt/flink/wordcount-result.txt ``` 该命令会在一个新的Docker容器中运行WordCount作业,并将输入文件读取为本地文件系统中的文件,将输出写入到本地文件系统中的文件中。 7. 您可以使用以下命令来查看输出文件中的结果: ``` docker run --rm -it flink:1.12 cat /opt/flink/wordcount-result.txt ``` 该命令将输出WordCount作业的结果。 以上是一个使用Docker部署Apache Flink 1.12的示例。请注意,您可能需要根据您的具体情况进行调整。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值