Why won't my docker container run unless I use

2019-09-20 19:20发布

If I run my Dockerfile with the following command, the docker container starts running and all is well.

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

However, if I run this command without the -it, the container does not appear to be running as docker ps returns nothing:

docker run -d --name test1 660c93c32a

.

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS 

         PORTS               NAMES

All I'm trying to do is run the container and then be able to attach and/or open a shell in the container later.

Not sure if the issue is in my dockerfile or not, so have pasted the dockerfile below.

############################################################
# 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条回答
时光不老,我们不散
2楼-- · 2019-09-20 20:03

When you run your container, command after CMD or ENTRYPOINT becomes $1 process of you container. If this process doesn't run well, your container will die. So, check container logs using:
docker logs <container id>
and recheck your command in CMD django-admin startproject $PROJECTNAME

查看更多
登录 后发表回答