在docker中运行flink

333 阅读1分钟

网上搜索了很多文章都是千篇一律的运行不起来 我们先来看看网上的步骤 首先创建docker-compose.yml没问题 内容如下

version: "2.1"
services:
  jobmanager:
    image: flink
    expose:
      - "6123"
    ports:
      - "8081:8081"
    command: jobmanager
    environment:
      - JOB_MANAGER_RPC_ADDRESS=jobmanager
  taskmanager:
    image: flink
    expose:
      - "6121"
      - "6122"
    depends_on:
      - jobmanager
    command: taskmanager
    links:
      - "jobmanager:jobmanager"
    environment:
      - JOB_MANAGER_RPC_ADDRESS=jobmanager

接着运行docker-compose

docker-compose build

docker-compose up -d --force-recreate 拉取镜像,没问题

~~docker-compose down~~这句就有问题,好像把镜像又remove了,这句不能执行,百度后发现这是一个停止容器的开关,停止容器有两个开关一个是down一个是stop,它们的区别如下: docker-compose stop命令将停止运行的容器,但不会删除它们 docker-compose down命令将停止运行的容器,并且会删除已停止的容器以及已创建的所有网络。 如果用了down那肯定后面那句restart就启动不了了。

docker-compose restart 这句执行后就启动了容器

查看日志

docker logs --tail="500" root-jobmanager-1

docker logs -f root-taskmanager-1 上面的flink-jobmanager-1,flink-taskmanager-1分别是启动后的容器名 不要直接用网上的名字,这个名字是在docker-compose up -d --force-recreate后在控制台上打印出来的,为什么我的是root-jobmanager-1,root是我放docker-compose.yml文件的位置,网上有的是flink那是因为他们是在/opt/flink下创建的docker-compose.yml文件

查看进程 netstat -anltp|grep 8081

复制出配置文件 docker cp root-jobmanager-1:/opt/flink/conf/ /root/

进入容器 docker exec -it --user root root-jobmanager-1 /bin/bash