我只是试验coreOS,码头和舰队。 我有下dockerfile:如何使用dockerfile为船队启动码头工?
FROM ubuntu:14.04
RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list
RUN apt-get update
RUN apt-get -y install nginx
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
RUN mkdir /etc/nginx/ssl
ADD default /etc/nginx/sites-available/default
EXPOSE 80
CMD ["nginx"]
我从这个文件创建映像(“nginx的 - 例如”),我可以启动容器:
docker run -v /home/core/share:/var/www:rw -p 80:80 -d nginx-example
现在,我要启动它与舰队,所以我承认,我必须创建一个服务文件,然后启动与舰队。
所以我尝试去创造服务文件(nginx1.service):
[Unit]
Description=MyTry
After=docker.service
Requires=docker.service
[Service]
TimeoutStartSec=0
ExecStartPre=-/usr/bin/docker kill nginx
ExecStartPre=-/usr/bin/docker rm nginx
ExecStartPre=/usr/bin/docker pull nginx-example
ExecStart=/usr/bin/docker docker run -p 80:80 -d nginx-example
ExecStop=/usr/bin/docker stop nginx
我submmited开始,但是当我做的:
fleetctl list-units
nginx1.service cbbed2c1.../IP failed failed
,我不能运行Web服务器。 我认为问题出在服务文件中,但我不知道如何构建它。 谢谢。
不直接关系到你的问题,但另一珍闻,可以帮助你解决问题,是。获取日志日志 'journalctl --unit = nginx1.service'会将服务中的日志“拖尾”,所以希望如果启动失败,你应该能够收集到一些clu从那里。 – ebr
谢谢,实际上'journalctl --unit = nginx1.service'帮了我很多。我推我的图像,所以它的工作原理,以及我不得不删除这些行: 'ExecStartPre = -/usr/bin/docker kill nginx ExecStartPre = -/usr/bin/docker rm nginx ExecStop =/usr/bin/docker stop nginx' –
很高兴帮助。尽管如果我正确理解了你的消息,你已经删除了杀死,删除和停止容器的行。你应该保留这些,因为当服务停止时,你希望它优雅地停止,并且当它开始时,你想确保清理旧的滞留容器。虽然当然有不同的用例。 无论如何,如果我的答案似乎正确,请随时将其标记为:)谢谢。 – ebr