本人菜鳥一枚,今天想用dockerfile構建一個ftp服務容器,遇到一些問題,實在不知道怎么回事,請教一下論壇里的高手。具體問題如下:
dockerfile:
FROM centos:7
ADD proftpd-1.3.5b.tar.gz /opt
COPY proftpd.conf /opt
RUN yum install -y net-tools \
&& useradd -s /sbin/nologin proftp \
&& echo "proftp:123.com" | chpasswd \
&& yum install -y gcc make \
&& cd /opt/proftpd-1.3.5b \
&& ./configure --prefix=/usr/local/proftpd \
&& make \
&& make install \
&& mv /usr/local/proftpd/etc/proftpd.conf /usr/local/proftpd/etc/proftpd.conf.bak \
&& cp /opt/proftpd.conf /usr/local/proftpd/etc/
EXPOSE 21
CMD /usr/local/proftpd/sbin/proftpd
構建:
docker build -t proftpd:v1 .
最后提示成功!
然后啟動容器
[root@localhost dockerfile]# docker run -itd -p 21:21 proftpd:v1
4a3d876a92f2a73dc20ba45764b79d0230bd98e00eb2b1155f73eb570c740d01
[root@localhost dockerfile]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4a3d876a92f2 proftpd:v1 "/bin/sh -c /usr/l..." 7 seconds ago Exited (0) 6 seconds ago wonderful_perlman
埠映射失敗了,進入容器看了一下 確實服務沒起來 是dockerfile里面CMD命令寫的不對么,請高手指教!
uj5u.com熱心網友回復:

自己頂一下,期待高手!
uj5u.com熱心網友回復:
docker inspect containerID去LogPath看下日志
uj5u.com熱心網友回復:
docker run -itd -p 21:21 proftpd:v1語法上沒有問題,或許是你的埠值太小。建議改大些不如30000:30000 是不是21埠被占用
uj5u.com熱心網友回復:
因為執行了/usr/local/proftpd/sbin/proftpd后終端就退出了,從而容器也退出了。所以需要改成:
CMD /usr/local/proftpd/sbin/proftpd && top
這樣你的命令會阻塞從而容器不會退出。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/42636.html
標籤:Docker
下一篇:中國烏云網
