除非我使用-i -t,否则为什么我的docker容器会运行?

时间:2016-11-07 04:04:49

标签: docker dockerfile

如果我使用以下命令运行我的Dockerfile,则docker容器开始运行,一切正常。

docker run --name test1 -i -t 660c93c32a

但是,如果我在没有-it的情况下运行此命令,则容器似乎没有运行,因为docker ps不返回任何内容:

docker run -d --name test1 660c93c32a

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS 

         PORTS               NAMES

我试图做的就是运行容器,然后能够在容器中附加和/或打开一个shell。

不确定问题是否在我的dockerfile中,所以粘贴了下面的dockerfile。

############################################################
# Dockerfile to build Ubuntu/Ansible/Django
############################################################

# Set the base image to Ansible
FROM ubuntu:16.10

# File Author / Maintainer
MAINTAINER David


# Install Ansible and Related Deps #
RUN apt-get -y update && \
    apt-get install -y python-yaml python-jinja2 python-httplib2 python-keyczar python-paramiko python-setuptools python-pkg-resources git python-pip
RUN mkdir /etc/ansible/
RUN echo '[local]\nlocalhost\n' > /etc/ansible/hosts
RUN mkdir /opt/ansible/
RUN git clone http://github.com/ansible/ansible.git /opt/ansible/ansible
WORKDIR /opt/ansible/ansible
RUN git submodule update --init
ENV PATH /opt/ansible/ansible/bin:/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin
ENV PYTHONPATH /opt/ansible/ansible/lib
ENV ANSIBLE_LIBRARY /opt/ansible/ansible/library

# Update the repository sources list
RUN apt-get update -y
RUN apt-get install python -y
RUN apt-get install python-dev -y
RUN apt-get install python-setuptools -y
RUN apt-get install python-pip

RUN mkdir /ansible/
WORKDIR /ansible
COPY ./ansible ./
WORKDIR /

RUN ansible-playbook -c local ansible/playbooks/installdjango.yml

ENV PROJECTNAME davidswebsite
CMD django-admin startproject $PROJECTNAME

1 个答案:

答案 0 :(得分:0)

当您运行容器时,CMD或ENTRYPOINT之后的命令变为您容器的$ 1进程。如果此过程运行良好,您的容器将会死亡。 因此,请使用以下方法检查容器日志:
docker logs <container id>
并在CMD django-admin startproject $PROJECTNAME

中重新检查您的命令