docker 容器化

使用docker-compose进行构建集群并运行

  Linux:cat /proc/version
  docker:  Docker version 20.10.6
  flink-docker: java flink 版本
  docker-compose:  docker-compose version 1.29.2
 docker-Docker Compose -- Kubernetes
 01.应用程序 docker化-dockerfile: 构建单个服务镜像,以脚本形式
 02. Docker Compose 与Kubernetes相比,Docker Compose非常轻巧 
 允许开发人员在单个YAML文件中定义基于容器的应用程序。 此定义包括使用的Docker映像,暴露的端口,依赖项,网络等
  Docker Compose环境中,所有容器均在一台主机上运行。 Docker Compose创建了一个本地网络,这些容器都是容器的一部分
 03.Kubernetes通常使用多个节点,可以动态添加或删除这些节点 -Kubernetes通常在称为节点的多个服务器上运行-多节点管理Docker

0.前置操作:

安装好docker
 安装好docker-compose  
  cp docker-compose-Linux-x86_64  /usr/local/bin/docker-compose
  sudo chmod +x /usr/local/bin/docker-compose

1.使用docker-compose进行构建--Docker Compose单台主机

 01.安装docker-compose
    安装后执行命令进行验证 docker-compose --version
 02.创建一个名为docker-compose.yml的文件-编辑内容后,保存
 version: '2'
 services:
 jobmanager:
   image: flink:latest
   environment:
    - JOB_MANAGER_RPC_ADDRESS=jobmanager
   expose:
    - "6123"
   ports:
    - 8081:8081/tcp
   command:
    - jobmanager
 taskmanager:
  image: flink:latest
  expose:
    - "6121"
    - "6122"
  depends_on:
    - jobmanager
  environment:
    - JOB_MANAGER_RPC_ADDRESS=jobmanager
  command:
  - taskmanager
   
  03.在docker-compose.yml所在的文件夹内执行 
  cd ~/soft
   docker-compose up -d

2.执行Flink程序

  sudo docker exec -it 388e6e988070  /bin/bash
  /opt/flink/bin/flink run /opt/flink/examples/batch/WordCount.jar

3.过程和原理解释

 flink docker启动flink容器的时候,会执行镜像中官方定制的docker-entrypoint.sh脚本文件
 docker logs [容器名]命令查看日 排查日志
 docker history : 查看指定镜像的创建历史
 docker inspect : 获取容器/镜像的元数据

4. docke镜像变成可变配置

dockefile
  FROM  RUN ENV  ENTRYPOINT CMD COPY
01.Docker ENTRYPOINT & CMD 理解与实践
 Dockerfiles for building Docker images for Apache Flink
 Dockerfile 文件中,通常都是 ENTRYPOINT 字段会是这样:
     ENTRYPOINT ["docker-entrypoint.sh"]
  位置 /docker-entrypoint.sh
 docker-entrypoint.sh脚本 CONF_FILE="${FLINK_HOME}/conf/flink-conf.yaml"
  配置文件docker中的位置  /opt/flink/conf/flink-conf.yml
02.gosu是个工具,用来提升指定账号的权限,作用与sudo命令类似,而docker中使用gosu的起源来自安全问题
 docker-compose的yml文件

5.将docker-compose 迁移到k8s

Docker Compose块将转换为两个单独的部分,即Deployment和Service

参考:

 https://github.com/apache/flink-docker
 使用Docker搭建Flink集群 https://www.icode9.com/content-4-642370.html
 https://nightlies.apache.org/flink/flink-docs-release-1.13/docs/deployment/resource-providers/standalone/docker/