首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用CoreOS和Fleet发布数据体图像的问题

利用CoreOS和Fleet发布数据体图像的问题
EN

Stack Overflow用户
提问于 2014-10-20 15:39:06
回答 2查看 935关注 0票数 1

我一直试图使用FleetCtl来启动对接图像,一个是数据卷映像,另一个是Nginx,它使用的是--批量-from选项。Nginx将不再继续在CoreOs服务器上运行,但是如果我转到服务器并键入命令停靠器,启动映像并运行。是否有使用舰队数据卷的启动Docker映像的映像?

卷的码头档案:

代码语言:javascript
复制
FROM busybox
MAINTAINER Zombie Possum

VOLUME  ["/usr/share/nginx/html", "/usr/share/nginx/conf"]

COPY dist /usr/share/nginx/html
COPY dist_nginx.conf /usr/share/nginx/conf/dist_nginx.conf

CMD ["/usr/bin/true"]

卷nginxData.service的舰队文件:

代码语言:javascript
复制
[Unit]
Description=Data Container
Requires=docker.service
After=docker.service

[Service]
TimeoutStartSec=0
KillMode=none
User=core
WorkingDirectory=/home/core
EnvironmentFile=/etc/environment
ExecStartPre=-/usr/bin/docker kill DATA_NGINX
ExecStartPre=-/usr/bin/docker rm DATA_NGINX
ExecStartPre=-/usr/bin/docker pull private_repo/data_nginx:latest
ExecStart=/usr/bin/docker run --name DATA_NGINX private_repo/data_nginx:latest
ExecStop=/usr/bin/docker stop DATA_NGINX

用于nginx.service的舰队文件:

代码语言:javascript
复制
[Unit]
Description=Nginx Container
Requires=docker.service
After=docker.service

[Service]
TimeoutStartSec=0
KillMode=none
User=core
WorkingDirectory=/home/core
EnvironmentFile=/etc/environment
ExecStartPre=-/usr/bin/docker kill NGINX
ExecStartPre=-/usr/bin/docker rm NGINX
ExecStartPre=-/usr/bin/docker pull private_repo/nginx:latest
ExecStart=/usr/bin/docker run  -rm -p 80:80 --name NGINX --volumes-from DATA_NGINX private_repo/nginx:latest
ExecStop=/usr/bin/docker stop NGINX

[X-Fleet]
MachineOf=nginxData.service

舰队指挥部:

代码语言:javascript
复制
fleetctl submit nginxData.service
fleetctl submit nginx.service
fleetctl start nginxData.service
fleetctl start nginx.service
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-20 17:02:04

您提供的Dockerfile在我的Docker主机上运行时有一个错误(不使用机队);也许当船队检测到该错误时,它会为您移除容器,而在Docker主机上,尽管出现错误,容器仍然处于停止状态。

以下是错误:

代码语言:javascript
复制
$ docker build --force-rm -t so-26469566 .
$ docker run --name DATA_NGINX so-26469566
exec: "/usr/bin/true": stat /usr/bin/true: no such file or directory2014/10/20 16:59:54 Error response from daemon: Cannot start container 767562758b9f30097a5ed16b98fe818d9c9574bb82b1cfd502bc3403e97d5b0
e: exec: "/usr/bin/true": stat /usr/bin/true: no such file or directory
make: *** [run] Error 1

在您的Dockerfile中尝试下面的CMD语句,看看它是否确实改变了船队的行为。

代码语言:javascript
复制
CMD ["/bin/true"]
票数 0
EN

Stack Overflow用户

发布于 2014-10-20 17:18:26

如果您的nginx.service直接在CoreOS服务器中启动和运行对接器运行命令,那么您的问题可能不是在停靠库映像中,而是在nginx.service中。

请注意,您使用以下方法配置服务:

代码语言:javascript
复制
ExecStartPre=-/usr/bin/docker kill NGINX
ExecStartPre=-/usr/bin/docker rm NGINX

尝试杀死和删除NGINX容器,但是您使用--rm运行容器,当它失败或退出时,它会自动删除它。

也许您的服务没有启动,因为它的ExecStartPre失败了。

试着包括

代码语言:javascript
复制
Requires=nginxData.service
After=nginxData.service

也是。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26469566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档