如何在AWS上运行docker?

时间:2018-11-02 14:04:41

标签: amazon-web-services docker

我有一个AWS Code管道,目前可以成功地将代码部署到我的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

1 个答案:

答案 0 :(得分:0)

docker run -t只需通过pseuodo-tty连接到容器的stdin来启动docker容器。但是,仅运行此命令不会建立与容器的交互式外壳。您将需要此文件才能在容器中运行命令。

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

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