2016-12-31 111 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