2016-12-31 95 views
1

DockerfileСan无法运行简单的搬运工容器

FROM armhfbuild/debian 

ENV DEBIAN_FRONTEND noninteractive 

RUN apt-get update \ 
    && apt-get install -y transmission-daemon \ 
    && service transmission-daemon stop 

RUN mkdir /root/media \ 
    && chmod 777 /root/media/ 

RUN apt-get install -y curl 

EXPOSE 9091 51413/tcp 51413/udp 

ADD settings.json /etc/transmission-daemon/ 

ADD init.sh/

CMD [ "/init.sh" ] 

体形:

docker build --tag=private/trans .

我试图运行:

docker run -p 9091:9091 -p 51413:51413 -p 51413:51413/udp -d private/trans 
dbb1ba0e840acc575bcbe1c87a79e7760fef4c43c587875cea110b74b1bf67e5 

但容器不启动并没有记录。

docker ps

CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS    PORTS    NAMES 

docker logs dbb1ba0e840acc575bcbe1c87a79e7760fef4c43c587875cea110b74b1bf67e5

Starting bittorrent daemon: transmission-daemon. 

init.sh

#!/bin/sh 

service transmission-daemon start 

请告诉我什么可以涉及到这个问题? 为什么码头集装箱不启动?

+1

它开始也是结束,因为init.sh “开始” 命令后终止。 –

+0

在“服务启动”行之后,您可以添加另一个命令,即'exec sh -i',以运行交互式shell。您当然不会真正使用该交互式shell,但该shell也不会自动关闭。 –

回答

2

正如Paul Stelian所说,你的命令终止。

https://github.com/magna-z/docker-transmission/blob/master/Dockerfile

看一看,比如你看到最后一行是

ENTRYPOINT ["transmission-daemon", "--foreground"] 

另一种方法是更换

service transmission-daemon start 

通过

service transmission-daemon start ; sleep infinity 

service transmission-daemon start ; tail -f /dev/null