Запуск простого скрипта Python в кластере лучей AWS с помощью docker

Мне невероятно сложно следовать рекомендациям по лучам для запуска образа докера в лучевом кластере, чтобы выполнить скрипт python. Я нахожу нехватку простых рабочих примеров.

Итак, у меня есть самый простой файл докеров:

FROM rayproject/ray
WORKDIR /usr/src/app
COPY . .
CMD ["step_1.py"]
ENTRYPOINT ["python3"]

Я использую это, чтобы создать изображение банки и отправить его в концентратор докеров. (myimage - это просто пример)

docker build -t myimage .   
docker push myimage

step_1.py просто выводит приветствие каждую секунду в течение 200 секунд:

import time
for i in range(200):
    time.sleep(1)
    print("hello")

Это мой config.yaml. снова очень просто:

cluster_name: simple-1

min_workers: 0
max_workers: 2

docker:
    image: "myimage"    
    container_name: "my_simple_docker_container"
    pull_before_run: True

idle_timeout_minutes: 5

provider:
    type: aws
    region: eu-west-2
    availability_zone: eu-west-2a

file_mounts_sync_continuously: False



auth:
    ssh_user: ubuntu
    ssh_private_key: /home/user/.ssh/aws_ubuntu_test.pem
head_node:
    InstanceType: c5.2xlarge
    ImageId: ami-xxxxx826a6b31fd2c
    KeyName: aws_ubuntu_test

    BlockDeviceMappings:
      - DeviceName: /dev/sda1
        Ebs:
          VolumeSize: 200

worker_nodes:
   InstanceType: c5.2xlarge
   ImageId: ami-xxxxx826a6b31fd2c
   KeyName: aws_ubuntu_test
   InstanceMarketOptions:
        MarketType: spot

head_setup_commands:
    - pip install boto3==1.4.8

worker_setup_commands:  []

head_start_ray_commands:
    - ray stop
    - ulimit -n 65536; ray start --head --port=6379 --object-manager-port=8076 --autoscaling-config=~/ray_bootstrap_config.yaml

worker_start_ray_commands:
    - ray stop
    - ulimit -n 65536; ray start --address=$RAY_HEAD_IP:6379 --object-manager-port=8076

Я попал в терминал:

ray up simple1.yaml:  

и эта ошибка каждый раз:

shared connection to x.x.xx.119 closed.
"docker cp" requires exactly 2 arguments.
See 'docker cp --help'.

Usage:  docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
        docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

Copy files/folders between a container and the local filesystem
Shared connection to x.x.xx.119 closed.

Просто чтобы добавить образ докера, он будет работать на любой другой удаленной машине, только не на лучевом кластере.

Если бы кто-то мог мне помочь, я был бы бесконечно благодарен и даже пообещаю добавить учебник по среде после моих трудностей.


person jtm101    schedule 04.01.2021    source источник


Ответы (1)


Я думаю, проблема может заключаться в использовании ENTRYPOINT. Ray ClusterLauncher запускает докер с помощью примерно такой команды:

docker run --rm --name <NAME> -d -it --net=host <image_name> bash

Когда я запустил docker build -t myimage . , а затем docker run --rm -it myimage bash, Докер выдал ошибку:

python3: can't open file 'bash': [Errno 2] No such file or directory
person Ian Rodney    schedule 05.01.2021
comment
это сработало. Проблема, с которой я столкнулся сейчас, заключается в том, что я не вижу вывода контейнера докеров. ты знаешь, где я могу это найти? - person jtm101; 18.01.2021