首页 > 解决方案 > 如何在 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

标签: amazon-web-servicesdocker

解决方案


docker run -t只需启动一个带有到容器标准输入的伪 tty 连接的docker容器。但是,仅运行此命令不会为容器建立交互式 shell。您将需要它才能在容器中运行命令。

您还需要将-i命令行标志与您希望使用的 shell 一起附加。例如,docker run -it IMAGE_NAME bash将使用 bash 作为交互式 shell 从您提供的映像启动一个容器。然后,您可以像往常一样运行 Bash 命令。

如果您正在寻找一种在 AWS 中的 EC2 实例上运行容器的简单方法,我强烈建议您选择AWS EC2 容器服务 (ECS)。这是一个非常简单的运行容器服务,它抽象和管理运行容器所涉及的大部分服务器级工作。


推荐阅读