Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 我的coreos/fleet部署服务正在消亡,我可以';我不知道为什么_Docker_Coreos - Fatal编程技术网

Docker 我的coreos/fleet部署服务正在消亡,我可以';我不知道为什么

Docker 我的coreos/fleet部署服务正在消亡,我可以';我不知道为什么,docker,coreos,Docker,Coreos,我正在尝试使用fleet在EC2中全新的coreos集群上部署nsqlookupd。这是我的systemd单位文件: [Unit] Description=nsqlookupd service After=docker.service Requires=docker.service [Service] EnvironmentFile=/etc/environment ExecStartPre=-/usr/bin/docker kill nsqlookupd ExecStartPre=-/usr

我正在尝试使用fleet在EC2中全新的coreos集群上部署nsqlookupd。这是我的systemd单位文件:

[Unit]
Description=nsqlookupd service
After=docker.service
Requires=docker.service

[Service]
EnvironmentFile=/etc/environment
ExecStartPre=-/usr/bin/docker kill nsqlookupd
ExecStartPre=-/usr/bin/docker rm nsqlookupd
ExecStart=/usr/bin/docker run -d --name=nsqlookupd -e BROADCAST_ADDRESS=$COREOS_PUBLIC_IPV4 -p 4160:4160 -p 4161:4161 mikedewar/nsqlookupd
ExecStartPost=/usr/bin/etcdctl set /nsqlookupd_broadcast_address $COREOS_PUBLIC_IPV4
ExecStop=/usr/bin/docker stop -t 1 nsqlookupd
ExecStopPost=/usr/bin/etcdctl rm /nsqlookupd_broadcast_address
如果我只运行
ExecStart
命令,我已经验证了容器工作正常。我的docker日志看起来就像

~ $ docker logs nsqlookupd
2014/08/08 02:23:58 nsqlookupd v0.2.29-alpha (built w/go1.2.2)
2014/08/08 02:23:58 TCP: listening on [::]:4160
2014/08/08 02:23:58 HTTP: listening on [::]:4161
我的fleetctl日志看起来像

$ fleetctl journal nsqlookupd.service
-- Logs begin at Sun 2014-08-03 12:49:00 UTC, end at Fri 2014-08-08 02:30:06 UTC. --
Aug 08 02:23:57 ip-10-147-9-249 systemd[1]: Starting nsqlookupd service...
Aug 08 02:23:57 ip-10-147-9-249 docker[6140]: Error response from daemon: No such container: nsqlookupd
Aug 08 02:23:57 ip-10-147-9-249 docker[6140]: 2014/08/08 02:23:57 Error: failed to kill one or more containers
Aug 08 02:23:57 ip-10-147-9-249 docker[6148]: Error response from daemon: No such container: nsqlookupd
Aug 08 02:23:57 ip-10-147-9-249 docker[6148]: 2014/08/08 02:23:57 Error: failed to remove one or more containers
Aug 08 02:23:57 ip-10-147-9-249 etcdctl[6157]: 54.198.93.169
Aug 08 02:23:57 ip-10-147-9-249 systemd[1]: Started nsqlookupd service.
Aug 08 02:23:57 ip-10-147-9-249 docker[6155]: 0fce4465f61c092541ba9d4c4e89ce13c4d6bedc096519034ed585d7adb5e0d7
Aug 08 02:23:59 ip-10-147-9-249 docker[6194]: nsqlookupd
两个看起来都不错。但是容器悄然死亡,我的fleetctl列表单位

$ fleetctl list-units
UNIT                STATE       LOAD    ACTIVE          SUB     DESC                MACHINE
nsqlookupd.service  launched    loaded  deactivating    stop    nsqlookupd service  1320802c.../10.147.9.249
运行
docker images
有点令人担忧:

$ docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
<none>                 <none>              8ef9d8f9d18d        9 minutes ago       710 MB
mikedewar/nsqadmin     latest              432af572bda8        2 days ago          710 MB
mikedewar/nsqd         latest              00bd4e474964        2 days ago          710 MB
<none>                 <none>              adf0ed97208e        3 weeks ago         710 MB
mikedewar/nsqlookupd   latest              2219c0e783d9        3 weeks ago         710 MB
<none>                 <none>              35d2212f8932        3 weeks ago         710 MB
mikedewar/nsq          latest              f9794fe056e1        3 weeks ago         710 MB
busybox                latest              a9eb17255234        9 weeks ago         2.433 MB
zmarcantel/cassandra   latest              b1168b45b4f8        4 months ago        738 MB
$docker图像
已创建存储库标记图像ID虚拟大小
8ef9d8f9d18d 9分钟前710 MB
Mikedwar/nsqadmin最新版本432af572bda8 2天前710 MB
Mikedevar/nsqd最新版本00bd4e474964 2天前710 MB
adf0ed97208e 3周前710 MB
Mikedwar/nsqlookupd最新2219c0e783d9 3周前710MB
35d2212f8932 3周前710 MB
Mikedevar/nsq最新版本f9794fe056e1 3周前710MB
busybox最新版本a9eb17255234 9周前2.433 MB
zmarcantel/cassandra最新版本b1168b45b4f8 4个月前738 MB
在过去的3周里,我一直在定期更新Mikedevar/nsqlookupd。也许那是我第一次把东西推给docker hub?我很想知道我正在处理的图像是最新的。我试过
docker-rmi-mikedewar/nsqlookupd
,然后是
docker-pull-mikedewar/nsqlookupd
,但是
CREATED
专栏仍然说它是3周前创建的

我不知道这是否有用,但是
ExecStopPost=/usr/bin/etcdctl rm/nsqlookupd_broadcast\u address
命令似乎起了作用-舰队日志中的
etcdctl
日志行表明我成功地将密钥设置为我的IP,但在容器死亡后,我无法从etcd获得该密钥


任何关于下一步在哪里寻找线索的帮助,或者任何关于为什么会发生这种情况的想法,都将不胜感激!很明显,我对这类事情还是比较陌生的…

您不应该在单元文件中以分离模式运行docker容器。您的execstart包含它:
execstart=/usr/bin/docker run-d
。这将导致systemd认为该进程已立即退出,因为它已分叉到后台


至于版本管理,如果你想绝对确保你得到的是最新的版本,你应该标记你的容器,然后拉Mikedevar/nsqlookupd:1.2.3。您可以在舰队单位文件中每次增加该值。

您可以尝试执行
docker images
docker ps
以验证是否存在Mikederawar/nsqlookupd image?错误,因此docker images有点令人担忧。编辑问题…
docker ps
不会显示容器立即死亡时正在运行,但
docker ps-a
会显示容器存在一段时间。好的…您确定
Mikedwar/nsqlookupd
图像正确吗?要验证执行,请在CoreOS站点外执行
docker pull Mikedevar/nsqlookupd
docker run Mikedevar/nsqlookupd
。注意:通常在我编写要与车队一起运行的服务时,我会指定docker pull语句。对于您的情况:
ExecStartPre=-/usr/bin/docker-pull-mikedevar/nsqlookupd
。这解释了一切。非常感谢!还要感谢@kikicarbonell,他花了很多精力让我整理我的方法!天啊!我终于找到了你的答案。这是漫长的一天。非常感谢你。