1. #! /bin/bash
    2. #安装Docker
    3. #定义用户名
    4. NEW_USER=rancher
    5. #添加用户(可选)
    6. sudo adduser $NEW_USER
    7. #为新用户设置密码
    8. echo rancher | sudo passwd $NEW_USER --stdin
    9. #为新用户添加sudo权限
    10. sudo echo "$NEW_USER ALL=(ALL) ALL" >> /etc/sudoers
    11. #安装必要的一些系统工具
    12. sudo yum install -y yum-utils device-mapper-persistent-data lvm2 bash-completion
    13. #添加Docker源信息
    14. sudo yum-config-manager --add-repo \
    15. http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    16. #缓存docker源
    17. sudo yum makecache
    18. #安装docker 19.03.7版本
    19. sudo yum -y install docker-ce-19.03.7-3.el7 docker-ce-cli-19.03.7-3.el7 containerd.io
    20. #把当前用户加入docker组
    21. sudo usermod -aG docker $NEW_USER
    22. #设置开机自启并运行docker服务
    23. sudo systemctl enable --now docker
    24. #安装yum-plugin-versionlock插件
    25. yum -y install yum-plugin-versionlock
    26. #锁定Docker软件包
    27. yum versionlock add docker-ce-19.03.7-3.el7 docker-ce-cli-19.03.7-3.el7 containerd.io
    28. #关闭虚拟内存
    29. swapoff -a
    30. sed -i 's/.*swap.*/#&/' /etc/fstab
    31. #系统内核调优
    32. cat >> /etc/sysctl.d/kubernetes.conf<<EOF
    33. # 开启路由功能
    34. net.ipv4.ip_forward=1
    35. # 避免cpu资源长期使用率过高导致系统内核锁
    36. kernel.watchdog_thresh=30
    37. # 开启iptables bridge
    38. net.bridge.bridge-nf-call-iptables=1
    39. # 调优ARP高速缓存
    40. net.ipv4.neigh.default.gc_thresh1=4096
    41. net.ipv4.neigh.default.gc_thresh2=6144
    42. net.ipv4.neigh.default.gc_thresh3=8192
    43. EOF
    44. sysctl -p
    45. #配置加速器
    46. sudo tee /etc/docker/daemon.json <<-'EOF'
    47. {
    48. "max-concurrent-downloads": 3,
    49. "max-concurrent-uploads": 5,
    50. "registry-mirrors": ["https://0bb06s1q.mirror.aliyuncs.com"],
    51. "storage-driver": "overlay2",
    52. "storage-opts": ["overlay2.override_kernel_check=true"],
    53. "log-driver": "json-file",
    54. "log-opts": {
    55. "max-size": "100m",
    56. "max-file": "3"
    57. }
    58. }
    59. EOF
    60. #重启docker
    61. systemctl daemon-reload
    62. systemctl restart docker
    63. systemctl enable docker.service
    64. #查看docker版本信息
    65. sudo docker info