首页 文章

通过Ansible启动Docker守护进程

提问于
浏览
2

我一直在研究一个安息船游戏手册,以启动一个私人码头注册表,但我遇到一个问题,让码头运行 . 我遇到的问题是docker守护程序无法正常启动 .

我正试图在我过去做过的aws ec2实例上启动docker守护进程 . 主机操作系统是ubuntu 14.04 .

我开始的第一个容器是Redis实例,它应该从以下播放开始

- 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,“失败”: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上尝试每个)都没有给出错误,但它们并没有停止前面提到的错误 .

我可以ssh进入ec2并手动启动守护进程

sudo docker -d &

然后手动启动Redis实例,但目标是使用ansible playbook自动执行此过程,以防我们需要构建其他docker注册表 .

有没有人建议我如何使用ansible来确保守护进程正在启动?

1 回答

  • 0

    在14.04中,服务名称为 docker.io .

    我可以通过手动停止docker.io服务并使用以下内容成功重新启动它来重新创建您的问题 .

    service: name=docker.io state=started
    

相关问题