首页
博客小事纪
网站统计
友情链接
推荐
百度一下
文心一言
通义千问
Search
1
openEuler 操作系统用户权限管理——sudo 权限的授予与限制案例
368 阅读
2
基于 openEuler 操作系统的 VNC(noVNC) 部署流程
338 阅读
3
基于 openEuler 操作系统使用 Sealos 构建 Kubernetes 高可用集群
285 阅读
4
openEuler 搭建本地 repo 源
187 阅读
5
初夏故宫游记
110 阅读
默认分类
openEuler
x2openEuler
云原生
生活随笔
登录
Search
标签搜索
openEuler
故宫
x2openEuler
Docker
Nginx
kubernetes
repo
VNC
SUSE
DeepSeek
Ollama
AI
闫志聪
累计撰写
14
篇文章
累计收到
0
条评论
首页
栏目
默认分类
openEuler
x2openEuler
云原生
生活随笔
页面
博客小事纪
网站统计
友情链接
推荐
百度一下
文心一言
通义千问
搜索到
1
篇与
的结果
2023-06-11
Docker 安装脚本
1 背景Docker 官方网站的说明文档中,介绍了在各种 Linux 发行版系统上安装 Docker 的步骤及各种安装方法。例如,在 CentOS 上安装 Docker 可以参考:Install Docker Engine on CentOS | Docker Docs。众所周知,此网站在国内难以访问,当然也可以使用国内可用的 Yum 源。但总体的安装、配置步骤比较繁琐,尤其是在新旧版本切换时,常因为某些文件、目录未彻底清理,导致 Docker 启动失败。此脚本具有下功能:提供 docker-ce-17.03.0 版本和 docker-ce 最新稳定版的安装部署可以实现 dokcer-ce-17.03.0 版本和 docker-ce 最新稳定版的无缝切换安装,无需重启系统可以自动解决网桥与防火墙的连接问题,安装后无需重启系统若安装后存储驱动不是 overlay(overlay2),提供一键解决方案的选择内置初始化代码(默认启用,停用需要自己编辑),若您的 Docker 出现问题,不妨用此脚本重新安装说明:因为旧版本的 Docker(如 docker-ce-17.03.0)在执行命令后有比较详细完整的返回结果,适合学习使用,因此脚本提供旧版本的一键安装。{dotted startColor="#7d7dfa" endColor="#7d7dfa"/}2 Docker 一键安装脚本# 脚本创建:闫志聪 # 创建时间:2023-09-15 # 当前版本:v2 #!/bin/bash trap 'mytrap ; exit 1' SIGINT INT # 声明初始化及中断善后函数 function mytrap() { yum -y remove containerd.io docker-buildx-plugin docker-ce docker-ce-cli docker-compose-plugin docker-ce-selinux.noarch \ audit-libs-python checkpolicy container-selinux.noarch docker-ce-rootless-extras fuse-overlayfs \ fuse3-libs libcgroup libsemanage-python policycoreutils-python python-IPy.noarch setools-libs slirp4netns rm -rf /root/docker-ce rm -rf /etc/docker rm -rf /var/lib/docker # rm -rf /etc/yum.repos.d/docker-ce.repo rm -rf /etc/sysctl.d/bridge-iptables.conf # rm -rf /proc/sys/net/bridge/bridge-nf-call-iptables # rm -rf /proc/sys/net/bridge/bridge-nf-call-ip6tables } # 安装 docker-ce-17.03.0 版本 function docker-ce-old () { mkdir /root/docker-ce && cd /root/docker-ce echo -e "\e[0;31m" curl -O https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.03.0.ce-1.el7.centos.x86_64.rpm echo curl -O https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm echo -e "\e[0m" yum -y install docker-ce-17.03.0.ce-1.el7.centos.x86_64.rpm docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm rm -rf /root/docker-ce if [ ! -d /etc/docker ] ; then mkdir /etc/docker ; fi } # 安装 docker-ce 最新版本 function docker-ce-latest () { yum -y install yum-utils echo -e "\e[0;31m" yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo echo -e "\e[0m" yum --enablerepo=docker-ce-stable -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin if [ ! -d /etc/docker ] ; then mkdir /etc/docker ; fi } # 声明选项判断函数 function option_check () { if [ "$1"=="number" ] ; then flag=$(echo $2 | egrep "1|2") elif [ "$1"=="letter" ] ; then flag=$(echo $2 | egrep "y|n") fi [ -z "$flag" ] && echo -e "\e[1;31m选项输入错误,请重新输入\e[0m" || break } # 版本选择 echo -n -e "\e[0;31m" cat <<EOF 请选择需要安装的 docker-ce 版本: 1、docker-ce-17.03.0 2、docker-ce-latest EOF while true ; do read -p "请输入您的选项:" num ; option_check number $num ; done echo -n -e "\e[0m" # 初始化安装环境 mytrap # 开始安装 case $num in 1) docker-ce-old ;; 2) docker-ce-latest ;; esac # 设置镜像加速站点 while true ; do echo -n -e "\e[0;31m" read -p "请输入您的Docker加速站点:" mirror echo -n -e "\e[0m" [ -z "$mirror" ] && mirror="https://fv6z6xq3.mirror.aliyuncs.com" url=${mirror#*//} ping -c 4 $url 2>/dev/null [ "$?" -ne 0 ] && echo -e "\e[1;31m加速站点不可用,请重新输入\e[0m" || break done cat > /etc/docker/daemon.json <<EOF { "registry-mirrors": ["$mirror"] } EOF # 解决 bridge 和 iptables 的连接问题 echo "1" > /proc/sys/net/bridge/bridge-nf-call-iptables echo "1" > /proc/sys/net/bridge/bridge-nf-call-ip6tables echo "net.bridge.bridge-nf-call-iptables=1" > /etc/sysctl.d/bridge-iptables.conf echo "net.bridge.bridge-nf-call-ip6tables=1" >> /etc/sysctl.d/bridge-iptables.conf #echo -e "\e[0;31m" #sysctl -p /etc/sysctl.d/bridge-iptables.conf #echo -e "\e[0m" systemctl enable docker systemctl start docker run=$(systemctl status docker | grep "active (running)") mirror=$(docker info | grep -A 1 "Registry Mirrors" | grep -v "Registry Mirrors") ufs=$(docker info | grep "Storage Driver" | grep overlay) if [ -z "$run" ] ; then echo -e "\e[0;31mDocker未启动\e[0m" exit 2 elif [ -n "$run" -a -n "$ufs" ] ; then echo -e "Docker运行正常:\e[0;32m$run\e[0m" echo -e "Docker加速站点:\e[0;34m $mirror\e[0m" echo -e "Docker存储驱动:\e[0;31m $ufs\e[0m" exit 0 elif [ -n "$run" -a -z "$ufs" ] ; then echo -e "Docker运行正常:\e[0;32m$run\e[0m" echo -e "Docker加速站点:\e[0;34m $mirror\e[0m" echo -e "\e[0;31mDocker文件系统不是overlay\e[0m" echo -n -e "\e[0;31m" while true ; do read -p "是否修正UFS类型为overlay,y(是),n(否):" let ; option_check letter $let ; done echo -e "\e[0m" case $let in y) echo "overlay" > /etc/modules-load.d/overlay.conf sed -i '/ExecStart/c ExecStart=/usr/bin/dockerd --storage-driver=overlay' systemctl daemon-reload systemctl restart docker ufs1=$(docker info | grep "Storage Driver" | grep overlay) echo -e "Docker存储驱动已修正:\e[0;31m$ufs1\e[0m" exit 0 ;; n) exit 2 ;; esac fi{dotted startColor="#7d7dfa" endColor="#7d7dfa"/}3 使用说明请填写正确的镜像加速站点,不要用脚本中默认的,那是我自己用的!!!若对脚本使用过程有疑问,或脚本执行错误、有更好的意见等,可在后台留言您也可以直接点击此处下载脚本文件:docker-ce-install.sh
2023年06月11日
73 阅读
0 评论
5 点赞