amazon-web-services - 如何在 AWS 上运行 docker?
问题描述
我有一个 aws 代码管道,目前已成功将代码部署到我的 EC2 实例。
我有一个 Docker 映像,它具有运行我的代码所需的设置,下面提供了 Dockerfile。当我运行docker run -t
它时,它只是在我的 docker 上加载一个交互式 shell,然后挂起任何命令(例如:ls)
有什么建议吗?
FROM continuumio/anaconda2
RUN apt-get install git
ENV PYTHONPATH /app/phdcode/panaxeaA1
# setting up venv
RUN conda create --name panaxea -y
RUN /bin/bash -c "source activate panaxea"
# Installing necessary packages
RUN conda install -c guyer pysparse
RUN conda install -c conda-forge pympler
RUN pip install pysparse
RUN git clone https://github.com/usnistgov/fipy.git
RUN cd fipy && python setup.py install
RUN cd ~
WORKDIR /app
COPY . /app
RUN cd panaxeaA1/models/alpha04c/launchers
RUN echo "launching..."
CMD python launcher_260818_aws.py
解决方案
docker run -t
只需启动一个带有到容器标准输入的伪 tty 连接的docker容器。但是,仅运行此命令不会为容器建立交互式 shell。您将需要它才能在容器中运行命令。
您还需要将-i
命令行标志与您希望使用的 shell 一起附加。例如,docker run -it IMAGE_NAME bash
将使用 bash 作为交互式 shell 从您提供的映像启动一个容器。然后,您可以像往常一样运行 Bash 命令。
如果您正在寻找一种在 AWS 中的 EC2 实例上运行容器的简单方法,我强烈建议您选择AWS EC2 容器服务 (ECS)。这是一个非常简单的运行容器服务,它抽象和管理运行容器所涉及的大部分服务器级工作。
推荐阅读
- html - 如何使 Bootstrap 5 浮动标签在 Contact Form 7 中工作?
- go - 如何在 librdkafka 中使用不同的 kdc 服务器配置多个 kafka
- javascript - 在 React Native 中从 Firestore 返回数据
- c# - 如何更改 Microsoft Teams 中的通知文本?
- node.js - 使用 NodeJS 从 Azure Data Lake Storage 复制 excel 文件后损坏的 zip
- laravel - 在使用 Laravel 的会话中获取纬度和经度并设置默认值?
- firebase - 找不到如何将设置添加到 firestore 9.0.0 React Native
- c++ - 如何使用 Visual Stuido 2015 编译 C++
- machine-learning - 用全连接层合成 1x1 卷积层
- laravel - Laravel Upsert 和删除不匹配的行