2 Star 1 Fork 0

千寻/docker

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
set_mirror.sh 2.66 KB
一键复制 编辑 原始数据 按行查看 历史
root 提交于 2017-05-10 14:48 . update
#! /bin/sh
set -e
if [ -z "$1" ]
then
echo 'Error: Registry-mirror url required.'
exit 0
fi
MIRROR_URL=$1
lsb_dist=''
command_exists() {
command -v "$@" > /dev/null 2>&1
}
if command_exists lsb_release; then
lsb_dist="$(lsb_release -si)"
fi
if [ -z "$lsb_dist" ] && [ -r /etc/lsb-release ]; then
lsb_dist="$(. /etc/lsb-release && echo "$DISTRIB_ID")"
fi
if [ -z "$lsb_dist" ] && [ -r /etc/debian_version ]; then
lsb_dist='debian'
fi
if [ -z "$lsb_dist" ] && [ -r /etc/fedora-release ]; then
lsb_dist='fedora'
fi
if [ -z "$lsb_dist" ] && [ -r /etc/os-release ]; then
lsb_dist="$(. /etc/os-release && echo "$ID")"
fi
if [ -z "$lsb_dist" ] && [ -r /etc/centos-release ]; then
lsb_dist="$(cat /etc/*-release | head -n1 | cut -d " " -f1)"
fi
if [ -z "$lsb_dist" ] && [ -r /etc/redhat-release ]; then
lsb_dist="$(cat /etc/*-release | head -n1 | cut -d " " -f1)"
fi
lsb_dist="$(echo $lsb_dist | cut -d " " -f1)"
lsb_dist="$(echo "$lsb_dist" | tr '[:upper:]' '[:lower:]')"
set_mirror(){
case "$lsb_dist" in
centos)
if grep "CentOS release 6" /etc/redhat-release > /dev/null
then
sudo sed -i "s|other_args=\"|other_args=\"--registry-mirror='$MIRROR_URL'|g" /etc/sysconfig/docker
sudo sed -i "s|OPTIONS='|OPTIONS='--registry-mirror='$MIRROR_URL'|g" /etc/sysconfig/docker
echo "Success."
echo "You need to restart docker to take effect : sudo service docker restart"
exit 0
fi
if grep "CentOS Linux release 7" /etc/redhat-release > /dev/null
then
sudo sed -i "s|ExecStart=/usr/bin/docker daemon|ExecStart=/usr/bin/docker daemon --registry-mirror="$MIRROR_URL"|g" /lib/systemd/system/docker.service
sudo systemctl daemon-reload
echo "Success."
echo "You need to restart docker to take effect : sudo service docker restart"
exit 0
fi
echo "Error: Set mirror failed, please set registry-mirror manually please."
exit 1
;;
ubuntu|debian)
DOCKER_CONFIG_FILE="/etc/default/docker"
if grep "registry-mirror" $DOCKER_CONFIG_FILE > /dev/null
then
sudo sed -i -u -E "s#--registry-mirror='?((http|https)://)?[a-zA-Z0-9.]+'?#--registry-mirror='$MIRROR_URL'#g" $DOCKER_CONFIG_FILE
else
echo 'DOCKER_OPTS="$DOCKER_OPTS --registry-mirror='$MIRROR_URL'"' >> $DOCKER_CONFIG_FILE
echo $MIRROR_URL
fi
echo "Success."
echo "You need to restart docker to take effect : sudo service docker restart"
exit 0
echo "Error: Set mirror failed, please set registry-mirror manually."
exit 1
;;
esac
echo "Error: Unsupported OS, please set registry-mirror manually."
exit 1
}
set_mirror
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Shell
1
https://gitee.com/zhaojianhui/docker.git
git@gitee.com:zhaojianhui/docker.git
zhaojianhui
docker
docker
master

搜索帮助

D67c1975 1850385 1daf7b77 1850385