#!/bin/bash
function backup_create_daemon_json() {
local daemon_json_file="/etc/docker/daemon.json"
local backup_dir="/etc/docker/daemon_json_backup"
local daemon_json_content='{"insecure-registries": ["192.168.1.144:8083", "192.168.1.144:8082"]}'
if ! sudo -n true 2>/dev/null; then
echo "脚本需要sudo权限才能操作文件,请确保脚本以sudo或root身份运行。"
exit 1
fi
echo "检查daemon.json文件是否存在"
if [ -f "$daemon_json_file" ]; then
local backup_date=$(date "+%Y-%m-%d_%H-%M-%S")
local backup_file="$backup_dir/daemon.json_$backup_date"
if ! mkdir -p "$backup_dir"; then
echo "创建备份目录失败,请检查目录权限或路径设置。"
exit 1
fi
sudo cp "$daemon_json_file" "$backup_file"
echo "检查已存在,备份原有的daemon.json文件为 $backup_file"
else
echo "daemon.json文件不存在,直接新增"
fi
echo "$daemon_json_content" | sudo tee /etc/docker/daemon.json > /dev/null
echo "成功新增daemon.json文件"
echo "重新加载daemon.json配置"
sudo systemctl daemon-reload
echo "重启 Docker 以使daemon.json配置生效"
sudo systemctl restart docker
sleep 5
docker login 192.168.1.144:8083 -u admin -p 3edc\$RFVs
echo "成功登录docker私库"
if ! docker images | awk -v image="192.168.1.144:8083/zookeeper" -v tag="3.6.2" '$1 == image && $2 == tag { found = 1; exit } END { exit !found }'; then
if docker pull 192.168.1.144:8083/zookeeper:3.6.2; then
echo "成功从私库中拉取镜像 192.168.1.144:8083/zookeeper:3.6.2"
else
echo "从私库中拉取镜像失败,请检查私库地址和镜像是否正确。"
exit 1
fi
else
echo "本地已存在相同版本的镜像 192.168.1.144:8083/zookeeper:3.6.2,跳过拉取镜像步骤。"
fi
}
function run_container() {
docker run -d --name=zookeeper --restart=always -p 2181:2181 -v /opt/docker/data/zookeeper:/data 192.168.1.144:8083/zookeeper:3.6.2
sleep 10
if docker ps -a | grep -q mongo; then
echo "容器启动成功!"
else
echo "容器启动失败,请检查日志和配置。"
fi
}
function check_and_restore() {
if [ -f /etc/docker/daemon_json_backup/daemon.json_* ]; then
cp /etc/docker/daemon_json_backup/daemon.json_* /etc/docker/daemon.json
rm -rf /etc/docker/daemon_json_backup
systemctl restart docker
fi
docker ps
}
backup_create_daemon_json
run_container
check_and_restore