ansible二进制安装docker

该博客详细介绍了如何在系统中卸载旧版Docker,下载并解压最新版本的Docker-CE,设置Docker目录、数据目录,创建用户组和用户,并配置Docker的启动服务和socket。此外,还提供了配置镜像源、数据存储位置以及启动Docker服务的步骤。
摘要由CSDN通过智能技术生成
---
- hosts: 10.0.0.33
  vars: 
     - dockerver: "19.03.15"
     - dockersrc: "http://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/static/stable/x86_64/docker-{{dockerver}}.tgz"
     - dockerdir: "/usr/bin"
     - dockerdatadir: /data/docker
  tasks:
    - name: remove packs
      apt: 
        name: 
          - docker
          - docker-engine 
          - docker.io
        state: absent
    - name: download docker and unarchive
      unarchive: remote_src=yes src={{dockersrc}} dest=/usr/local
      register: var1
      until: var1 is succeeded
      retries: 5
    - name: copy binary
      shell: /bin/cp -a /usr/local/docker/*  {{dockerdir}} 
    - name: group add
      group: name=docker system=yes
    - name: user add
      user: name=deployer append=yes groups=docker shell=/bin/bash
    - name: generate container.service
      copy:
        content: |
              [Unit]
              Description=containerd container runtime
              Documentation=https://containerd.io
              After=network.target local-fs.target
              
              [Service]
              ExecStartPre=-/sbin/modprobe overlay
              ExecStart={{dockerdir}}/containerd
              
              Type=notify
              Delegate=yes
              KillMode=process
              Restart=always
              RestartSec=5
              # Having non-zero Limit*s causes performance problems due to accounting overhead
              # in the kernel. We recommend using cgroups to do container-local accounting.
              LimitNPROC=infinity
              LimitCORE=infinity
              LimitNOFILE=1048576
              # Comment TasksMax if your systemd version does not supports it.
              # Only systemd 226 and above support this version. 
              TasksMax=infinity
              OOMScoreAdjust=-999
              
              [Install]
              WantedBy=multi-user.target     
        dest: /lib/systemd/system/containerd.service
    - name: generate docker.socket
      copy:
        content: |
              [Unit]
              Description=Docker Socket for the API                                                                                                                                              PartOf=docker.service

              [Socket]
              ListenStream=/var/run/docker.sock
              SocketMode=0660
              SocketUser=root
              SocketGroup=docker
              
              [Install]
              WantedBy=sockets.target

        dest: /lib/systemd/system/docker.socket
    - name: generate docker.service
      copy:
        content: |
              [Unit]
              Description=Docker Application Container Engine
              Documentation=https://docs.docker.com
              BindsTo=containerd.service
              After=network-online.target firewalld.service containerd.service
              Wants=network-online.target
              Requires=docker.socket
              
              [Service]
              Type=notify
              # the default is not to use systemd for cgroups because the delegate issues still
              # exists and systemd currently does not support the cgroup feature set required
              # for containers run by docker
              ExecStart={{dockerdir}}/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
              ExecReload=/bin/kill -s HUP $MAINPID
              TimeoutSec=0
              RestartSec=2
              Restart=always
              
              # Note that StartLimit* options were moved from "Service" to "Unit" in systemd 229.
              # Both the old, and new location are accepted by systemd 229 and up, so using the old location
              # to make them work for either version of systemd.
              StartLimitBurst=3
              
              # Note that StartLimitInterval was renamed to StartLimitIntervalSec in systemd 230.
              # Both the old, and new name are accepted by systemd 230 and up, so using the old name to make
              # this option work for either version of systemd.
              StartLimitInterval=60s
              
              # Having non-zero Limit*s causes performance problems due to accounting overhead
              # in the kernel. We recommend using cgroups to do container-local accounting.
              LimitNOFILE=infinity
              LimitNPROC=infinity
              LimitCORE=infinity

              # Comment TasksMax if your systemd version does not support it.
              # Only systemd 226 and above support this option.
              TasksMax=infinity
              
              # set delegate yes so that systemd does not reset the cgroups of docker containers
              Delegate=yes
              
              # kill only the docker process, not all processes in the cgroup
              KillMode=process
              
              [Install]
              WantedBy=multi-user.target   
        dest: /lib/systemd/system/docker.service
    - name: make dir /etc/docker
      file: state=directory path=/etc/docker
    - name: generate config json
      copy: 
        content: |
              {
                 "registry-mirrors": ["https://dw5xdjrm.mirror.aliyuncs.com"],
                 "data-root": "/data/docker",
                 "insecure-registries": ["10.0.0.84"]
              }
        dest: /etc/docker/daemon.json
    - name: make docker data dir
      file: state=directory recurse=yes path=/data/docker owner=root group=root
    - name: start dockerd
      service: name=docker state=started enabled=yes

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值