【问题标题】:Naming a Docker container with Dockerrun.aws.json and Elastic Beanstalk使用 Dockerrun.aws.json 和 Elastic Beanstalk 命名 Docker 容器
【发布时间】:2018-02-08 03:27:08
【问题描述】:

我需要在 EB 应用程序上执行部署后脚本。我需要在多容器 Docker 环境中的 Docker 容器上执行命令。问题是 Docker 容器被分配了一个随机散列作为容器名称。

我四处搜索,似乎找不到任何关于在使用 EB 构建和设置过程中如何为 Docker 容器分配名称的信息。

有人对此有任何见解吗?我知道使用 docker-compose 这不是问题。

【问题讨论】:

    标签: amazon-web-services docker docker-compose amazon-elastic-beanstalk


    【解决方案1】:

    即使您在Dockerrun.aws.json 中命名容器,beantalk 仍然使用包含环境名称和其他类似内容的特定哈希来命名它们。但它也有上面文件中的名称。

    8a18a679564e   XXXXXXXXXX.dkr.ecr.eu-west-1.amazonaws.com/XXX:1.0.0-nginx   "nginx -g 'daemon ..."   13 hours ago        Up 13 hours         0.0.0.0:80->80/tcp   ecs-awseb-test-rcbdaytu5h-6-nginx-e6a58fe786d9eae7dc01
    

    最后一列包含我们所说的哈希。如果您正在创建部署后脚本,您仍然可以获取容器 ID,比如说,

    docker ps -qf name=nginx
    

    根据名称部分返回容器 ID。

    我会在 .ebextensions 的配置文件中执行类似的操作

    files:
      "/opt/elasticbeanstalk/hooks/appdeploy/post/99_do_something_on_container.sh":
        mode: "000755"
        owner: root
        group: root
        content: |
          #!/usr/bin/env bash
          MY_CONTAINER=$(docker ps -qf name=nginx)
          docker exec $MY_CONTAINER my command
    

    希望它能为您提供有关如何解决问题的任何想法。 :-)

    【讨论】:

      【解决方案2】:

      可以使用 Docker.aws.json 文件来命名容器,请参阅

      "containerDefinitions": [
          {
            "name": "php-app",
            "image": "php:fpm",
            "environment": [
              {
                "name": "Container",
                "value": "PHP"
              }
            ],
            "essential": true,
            "memory": 128,
            "mountPoints": [
              {
                "sourceVolume": "php-app",
                "containerPath": "/var/www/html",
                "readOnly": true
              }
            ]
          }
      

      这是来自http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker_v2config.html#create_deploy_docker_v2config_dockerrun的示例

      你可以用类似的方式命名容器

      【讨论】:

      • 我最近试过了,但是在运行docker ps的时候,容器的名字还是一个hash。
      猜你喜欢
      • 2022-07-23
      • 2017-07-26
      • 2015-03-07
      • 2021-11-25
      • 2015-04-26
      • 2015-02-24
      • 1970-01-01
      • 2021-03-21
      • 2018-05-16
      相关资源
      最近更新 更多