【Docker】封装docker相关的命令

  1. 将下面的内容并全选另存为 /etc/profile.d/z90_dockerfuncs.sh 到目标UBUNTU系统上
  2. 执行 source /etc/profile.d/z90_dockerfuncs.sh 即可
  3. 点击此传送门查看原始文件
#!/usr/bin/env bash
#--- Coding: UTF-8 ---
#=====================================================================
# COPYSTR: Copyright (c) 2023 By HuachenLink, All Rights Reserved.
# FLENAME: ldg_dkfuncs.sh
# CONTACT: developer@huachen.link
# CREATED: 2020-02-18 13:16:53
# LTSVERN: 0.1
# LTSUPDT: 2023-04-11 08:07:42
#=====================================================================
_sfi.dockereng() {
  apt-get remove docker docker-engine docker.io containerd runc
  apt-get update
  apt-get install ca-certificates curl gnupg
  mkdir -m 0755 -p /etc/apt/keyrings
  local DLURL='https://download.docker.com/linux/ubuntu'
  local VFCFG='/etc/apt/keyrings/docker.gpg'
  local VARCH="$(dpkg --print-architecture)"
  local OSVER="$(. /etc/os-release && echo $VERSION_CODENAME)"
  curl -fsSL $DLURL/gpg | sudo gpg --dearmor -o $VFCFG
  echo "deb [arch="$VARCH" signed-by=$VFCFG] $DLURL $OSVER stable" |
    tee /etc/apt/sources.list.d/docker.list >/dev/null
  apt update
  apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
}

sfi.docker() {
  local flg="${1:-no}"
  if [ "Xno" = "X$flg" ]; then
    [ "X" != "X$(command -v docker)" ] && return
  fi
  local f=$(ls -l $HOME/.*/*/get-docker.sh 2>/dev/null | awk '{printf $NF}')
  [ "X" != "X$f" ] && bash $f || _sfi.dockereng
}
################################################################################
[ "X" != "X$(command -v docker)" ] && {
  dkt_uptdaemonjson() {
    local thz_ip4=$(hostname -I | awk '{print $1}')
    local thz_rgymir='https://ep02eyw6.mirror.aliyuncs.com","https://docker.mirrors.ustc.edu.cn'
    {
      echo '{'
      echo '  "exec-opts": ["native.cgroupdriver=systemd"],'
      echo '  "registry-mirrors": ["'$thz_rgymir'"],'
      echo '  "insecure-registries" : ["'$thz_ip4':443","'$thz_ip4':80","0.0.0.0/0"],'
      echo '  "log-driver": "json-file",'
      echo '  "log-opts": {"max-size": "100m"},'
      echo '  "storage-driver": "overlay2",'
      echo '  "bip": "192.168.2.251/24",'
      echo '  "data-root": "/zsq/docker",'
      echo '  "dns": ["114.114.114.114","223.5.5.5","8.8.8.8"]'
      echo '}'
    } >/etc/docker/daemon.json
    mkdir -p /zsq/docker 2>/dev/null
    systemctl daemon-reload
    systemctl restart docker
  }
  #-----------------------------------------------------------------------------
  dkt_setup_bldenv() {
    case $1 in
    -h | --help | help) echo "USAGE: $FUNCNAME [dkimg{=myenv:latest}] [dkname{=bldenv}]" && return ;;
    esac
    local dk_img=${1:-mydev} dkname="${2:-bldenv}"
    local has=$(docker ps -a | awk '$NF=="'${dkname,,}'"{printf 1}')
    [ "X1" = "X$has" ] && dkname=${dkname}_$(echo "$(date +%s)%100" | bc)
    local ropts="-itd"
    ropts+=' -w /root'
    ropts+=' -u root:root'
    ropts+=" -h $dkname"
    ropts+=" --name $dkname"
    ropts+=' --network host'
    ropts+=' --privileged'
    ropts+=' -v /dev:/dev:ro'
    ropts+=' -v /opt:/opt:rw'
    ropts+=' -v /root:/root:rw'
    ropts+=' -v /etc/profile:/etc/profile:ro'
    ropts+=' -v /etc/profile.d:/etc/profile.d:rw'
    ropts+=' -v /home/toolchain:/home/toolchain:ro'
    ropts+=' -v /sys/bus/pci/drivers:/sys/bus/pci/drivers:ro'
    #ropts+=' -v /sys/kernel/mm/hugepage:/sys/kernel/mm/hugepage:rw'
    ropts+=' -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime:ro'
    ropts+=' -v /sys/devices/system/node:/sys/devices/system/node:ro'
    docker run $ropts "$dk_img" "/bin/bash"
  }
  #-----------------------------------------------------------------------------
  dkt_in() {
    case $1 in
    -h | --help) echo "Usage: $FUNCNAME [kw_first_running_docker{:=bldenv}]" && return 0 ;;
    esac

    local dkey=${1:-bldenv}
    local rfd=$(docker ps | awk '/'${dkey,,}'/{print $NF}')
    [ "X" = "X$rfd" ] && echo "[ERR] not find a docker has a <$dkey> in it !!!" && return 1
    docker exec -it $rfd bash
  }
  dkt_clean_dkall() {
    local dks=($(docker ps -a | awk 'NR>1{print $1}' | xargs))
    [ ${#dks[@]} -ne 0 ] && docker rm $1 ${dks[@]}
  }
  dkt_clean_niall() {
    local dks=($(docker images | awk '$1 ~ /none/{print $3}' | xargs))
    [ ${#dks[@]} -ne 0 ] && docker rmi -f ${dks[@]}
  }
  alias dkt_psa='docker ps -a'
  alias dkt_tpl='docker images'
  alias dkt_fnd='docker search'
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值