记录算法服务器运维时使用的相关命令。
Registry —— Docker镜像仓库
|
1 2 3 4 5 |
docker run -d \ --name registry \ -p 80:5000 \ -v /data/registry:/var/lib/registry \ registry |
Grafana 定制开发、维护
|
1 2 3 4 5 |
docker run -d \ -p 3000:3000 \ --name=grafana \ -v /data/grafana/grafana-storage:/var/lib/grafana \ algo-docker.miniwan.com/grafana |
Prometheus部署
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
docker run -d \ -p 9090:9090 \ --name prometheus \ -v /data/prometheus/:/prometheus \ prom/prometheus \ --storage.tsdb.path=/prometheus/data/ \ --storage.tsdb.retention.time=600d \ --storage.tsdb.retention.size=400GB \ --config.file=/prometheus/prometheus.yml \ --web.enable-admin-api \ --web.enable-lifecycle #update curl -X POST http://127.0.0.1:9090/-/reload |
如果迁移时启动失败,通过命令查看日志获取原因:
|
1 |
docker logs prometheus |
PushGateway 统一部署端口 9091
|
1 2 3 4 |
docker run -d \ --name=push_gateway \ -p 9091:9091 \ prom/pushgateway |
cAdvisor —— docker监控 统一部署端口 4194
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#env sudo mount -o remount,rw '/sys/fs/cgroup' sudo ln -s /sys/fs/cgroup/cpu,cpuacct /sys/fs/cgroup/cpuacct,cpu #run docker run \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:rw \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --volume=/dev/disk/:/dev/disk:ro \ --publish=4194:8080 \ --detach=true \ --name=cadvisor \ --privileged \ --device=/dev/kmsg \ google/cadvisor |
Docker依赖代理的环境初始化脚本
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
#!/bin/bash # 校验是Root用户 username=$(whoami) if [ ! ${username} == "root" ]; then echo "please su root, cur_user: " ${username} exit 1 fi # 安装 Docker yum install -y docker # 默认代理设置(如果未提供参数则使用这些默认值) HTTP_PROXY=${1:-"http://127.0.0.1:8118"} HTTPS_PROXY=${2:-"$HTTP_PROXY"} # 默认为与 HTTP_PROXY 相同 NO_PROXY=${3:-"localhost,127.0.0.1"} # 配置路径 PROXY_CONF_DIR="/etc/systemd/system/docker.service.d" PROXY_CONF_FILE="$PROXY_CONF_DIR/http-proxy.conf" # 检查是否已经存在配置目录,不存在则创建 if [ ! -d "$PROXY_CONF_DIR" ]; then echo "创建目录: $PROXY_CONF_DIR" mkdir -p "$PROXY_CONF_DIR" fi # 如果配置文件已存在,进行备份 if [ -f "$PROXY_CONF_FILE" ]; then BACKUP_FILE="$PROXY_CONF_FILE.bak.$(date +%F_%T)" echo "备份已存在的配置文件到: $BACKUP_FILE" cp "$PROXY_CONF_FILE" "$BACKUP_FILE" else echo "配置文件不存在,无需备份。" fi # 读取配置文件内容 config_content="" if [ -f "$PROXY_CONF_FILE" ]; then config_content=$(<"$PROXY_CONF_FILE") # 使用内置命令读取文件内容 fi # 检查和创建 [Service] 块 if [[ ! "$config_content" == *"[Service]"* ]]; then if [[ -n "$config_content" ]]; then config_content+="\n[Service]" else config_content="[Service]" fi echo "创建 [Service] 块。" fi update_environment() { local key="$1" local value="$2" local service_line=$(echo -e "$config_content" | grep -n "^\[Service\]" | cut -d: -f1) if [ -z "$service_line" ]; then echo "未找到 [Service] 块,无法添加环境变量 $key。" return fi # 获取添加位置行号, 如果没有找到下一个块,获取文件的最后一行行号。 local add_line=$(echo -e "$config_content" | sed -n "$((service_line + 1)),\$p" | grep -n "^\[.*\]" | head -n 1 | cut -d: -f1) if [ -z "$add_line" ]; then add_line=$(echo -e "$config_content" | wc -l) else add_line=$((add_line - 1 + service_line)) fi # 查找现有配置 local current_value=$(echo -e "$config_content" | sed -n "$((service_line)),$ p" | grep "^Environment=\"$key=") if [ -n "$current_value" ]; then # 获取当前值 current_value=$(echo "$current_value" | sed -E "s/^Environment=\"$key=(.*)\"/\1/") if [ "$current_value" != "$value" ]; then echo "更新: $key=$value" config_content=$(echo -e "$config_content" | sed -E "$((service_line)),$ s|^Environment=\"$key=.*\"|Environment=\"$key=$value\"|") fi else echo "添加: $key=$value" config_content=$(echo -e "$config_content" | sed -E "$((add_line))a Environment=\"$key=$value\"") fi } # 更新或写入代理设置 update_environment "HTTP_PROXY" "$HTTP_PROXY" update_environment "HTTPS_PROXY" "$HTTPS_PROXY" update_environment "NO_PROXY" "$NO_PROXY" # 更新文件内容 echo -e "$config_content" > "$PROXY_CONF_FILE" # 重新加载 systemd 配置并重启 Docker echo "重新加载 systemd 配置并重启 Docker..." if systemctl daemon-reload && systemctl restart docker; then echo "Docker 已成功重启。" else echo "重启 Docker 失败,请检查日志。" >&2 exit 1 fi # 检查 Docker 的代理配置 echo "Docker 代理配置信息:" docker info | grep -i proxy |
好了,以上是服务器维护的相关内容了。
算法服务器运维命令
