gpt4 book ai didi

docker - 如何在给定 dockerfile 的情况下启动带有 fleet 的 docker?

转载 作者:行者123 更新时间:2023-12-02 01:36:35 26 4
gpt4 key购买 nike

我只是在尝试使用 coreOS、docker 和 fleet。我有下一个 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-example”),我可以启动容器:

docker run -v /home/core/share:/var/www:rw -p 80:80 -d nginx-example

现在,我想用 fleet 启动它,所以我知道我必须创建一个服务文件,然后用 fleet 启动它。

所以我尝试创建服务文件(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

我提交并启动了它,但是当我这样做时:

fleetctl list-units
nginx1.service cbbed2c1.../IP failed failed

而且我无法运行网络服务器。我认为问题出在服务文件中,但我不知道如何构建它。谢谢。

最佳答案

你不应该以守护进程模式(-d)启动你的容器:

"If you are going to modify these units, be sure you don't copy a docker run command that starts a container in detached mode (-d). Detached mode won't start the container as a child of the unit's pid. This will cause the unit to run for just a few seconds and then exit."

https://coreos.com/docs/launching-containers/launching/fleet-example-deployment/#service-files

关于docker - 如何在给定 dockerfile 的情况下启动带有 fleet 的 docker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30880046/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com