开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

为什么我用Flink docker-compose up -d 这个配置文件就会变成root ?

为什么我用Flink docker-compose up -d 这个配置文件就会变成root 了 是怎么回事啊?f8cf493372f180a782615d275146d6c0.png
11b6ba34dd8061a0f7233408c4269adf.png

展开
收起
芯在这 2024-01-04 14:16:58 120 0
2 条回答
写回答
取消 提交回答
  • Flink Docker Compose 配置文件中默认使用 root 用户运行 Flink 容器,因此Flink Docker Compose 配置文件中默认使用 root 用户运行 Flink 容器,因此当你使用 docker-compose up -d 命令启动 Flink 时,会以 root 用户身份运行。

    这是因为在 Docker Compose 文件中,Flink 服务定义使用了 user: root 参数,表示以 root 用户身份运行该服务。如果你希望以其他用户身份运行 Flink 容器,可以在 Docker Compose 文件中修改相应的配置。例如:

    version: '3'
    services:
      flink:
        image: flink:latest
        ports:
          - "8081:8081"
        command: jobmanager
        user: your_username
    

    在这个例子中,将 user 参数设置为你想要使用的用户名(例如 your_username),然后再次运行 docker-compose up -d 命令,Flink 容器将以指定的用户身份运行。

    2024-01-05 15:07:46
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    当你使用docker-compose up -d命令启动Flink容器时,Docker会以root用户身份运行容器。这是因为在Docker中,默认情况下容器是以root用户身份运行的。

    如果你希望在容器中以非root用户身份运行Flink,可以通过以下步骤进行配置:

    1. 创建一个名为flink的用户和组:

      sudo groupadd flink
      sudo useradd -g flink -m flink
      
    2. 将Flink的安装目录(例如/opt/flink)更改为新创建的用户和组拥有:

      sudo chown -R flink:flink /opt/flink
      
    3. 修改Flink的配置文件(例如flink-conf.yaml),将jobmanager.rpc.addresstaskmanager.rpc.address的值设置为主机名或IP地址,而不是localhost。例如:

      jobmanager.rpc.address: jobmanager
      taskmanager.rpc.address: taskmanager
      
    4. 在Docker Compose文件中,将Flink服务的配置更改为使用新创建的用户和组。例如:

      services:
      flink:
       image: flink:latest
       container_name: flink
       user: "1000:1000" # 这里的"1000"是新创建的用户ID,可以根据需要进行更改
       volumes:
         - /path/to/flink/config:/opt/flink/conf # 将Flink配置文件挂载到容器中
         - /path/to/flink/data:/opt/flink/data # 将Flink数据目录挂载到容器中
       environment:
         - JOB_MANAGER_RPC_ADDRESS=jobmanager # 根据实际配置进行更改
         - TASK_MANAGER_RPC_ADDRESS=taskmanager # 根据实际配置进行更改
      
    5. 重新启动Flink容器:

      docker-compose down && docker-compose up -d
      

    通过以上步骤,你应该可以在容器中以非root用户身份运行Flink了。请注意,这只是一个示例配置,你可能需要根据你的实际情况进行调整。

    2024-01-04 16:10:51
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载