docker db: mysql restart

我们两清 提交于 2020-08-16 21:45:24

需求: 本地化部署一个mysql服务,重启自动启动

  • mysql 服务
  • 重启服务自己启动

方案

  • 方案一: 本地安装后,service 服务托管
  • 方案二: ansible + docker

重复的事情只做一次的策略,使用ansible + docker

docker run

  • -d: 后台运行
  • --restart=always: 满足服务重启

docker restart

参数

  • no – 容器退出时不要自动重启。这个是默认值。
  • on-failure[:max-retries] – 只在容器以非0状态码退出时重启。可选的,可以退出docker daemon尝试重启容器的次数。
  • always – 不管退出状态码是什么始终重启容器。当指定always时,docker daemon将无限次数地重启容器。容器也会在daemon启动时尝试重启,不管容器当时的状态如何。
  • unless-stopped – 不管退出状态码是什么始终重启容器,不过当daemon启动时,如果容器之前已经为停止状态,不要尝试启动它。

本机重启后效果: 测试效果

ansible-roles-task-main.yml

- name: "create db_mysql dir"
  file:
    path: "{{ db_mysql_root_path }}/{{ item }}"
    state: directory
  with_items:
    - config
    - data
    - logs
    - tar
  tags:
  - dir
  

- name: "start mysql docker"
  docker_container:
    detach: True
    image: "{{ db_mysql_images }}"
    log_driver: json-file
    log_options: {"max-size": "100m", "max-file": "3"}
    name: "{{ db_mysql_name }}"
    network_mode: host
    #   published_ports:
    #     - "{{ registry_port }}:5000"
    recreate: yes
    restart: yes
    restart_policy: unless-stopped
    state: started
    env:
      MYSQL_ROOT_PASSWORD: "yourpassworld"
    volumes:
      - "{{db_mysql_data}}:/var/lib/mysql"
  tags:
    - run
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!