我一直在编写一个ansible剧本来启动一个私人码头注册中心,但是我在让码头管理员运行时遇到了问题。我遇到的问题是,docker守护进程没有正常启动。
我试图在aws ec2实例上启动docker守护进程,这是我以前做过的。主机os是ubuntu14.04。
我启动的第一个容器是Redis实例,它应该从下面的play开始
- name: Run a Redis instance
sudo: yes
docker:
image: dockerfile/redis
ports: 6379:6379
name: redis
volumes: "{{ host_redis_config_dir }}:{{ container_redis_config_dir }}"
state: running
command: "redis-server {{ container_redis_config_dir}}/{{ host_redis_config }}"它每次都会失败,出现以下错误
失败: ec2-54-68-242-100.us-west-2.compute.amazonaws.com => {“已更改”:false,“false”:true} msg: ConnectionError(MaxRetryError("UnixHTTPConnectionPool(host='localhost',port=None ):最大重试超过url: /run/docker.sock/v1.12/containers/json?all=1&limit=-1&trunc_cmd=1&size=0 (由: Errno 111连接拒绝引起)
致命:所有主机都失败了??中止。
我试过
service docker start和
shell: sudo docker -d &在播放之前,为了强制守护进程启动(在不同的时间和不同的ec2上分别尝试了每个进程),这两种方法都没有给出错误,但是它们没有停止前面提到的错误。
我可以在ec2中手动启动守护进程。
sudo docker -d &然后手动启动Redis实例,但目标是使用ansible剧本实现这个过程的自动化,以防我们需要构建额外的停靠注册中心。
有人建议我如何使用ansible来确保守护进程启动吗?
发布于 2014-09-20 05:06:56
在14.04中,服务名为docker.io。
我可以通过手动停止docker.io服务来精确地重新创建您的问题,并通过以下操作成功地重新启动它作为播放的一部分。
service: name=docker.io state=startedhttps://stackoverflow.com/questions/25942527
复制相似问题