Docker下载和设置代理

重要的事情:没有代理这个文章可能不能帮助解决问题

#!/bin/bash -x

echo "CentOS 7.4"
echo "=== 关闭防火墙 ==="
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service

echo
PROXY="127.0.0.1:8118"
PROXY_CONF="/etc/yum.conf"

if ! grep -q "proxy=$PROXY" "$PROXY_CONF"; then
  echo "proxy=$PROXY" | sudo tee -a "$PROXY_CONF" > /dev/null
  echo "设置代理 'proxy = $PROXY' in $PROXY_CONF, 成功."
else
  echo "这个代理 'proxy = $PROXY' 已存在在 $PROXY_CONF 请继续."
fi

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum-config-manager --enable docker-ce-nightly
sudo yum-config-manager --enable docker-ce-test
sudo yum-config-manager --disable docker-ce-nightly

echo "=== 安装 Docker 实例 ==="
sudo yum install -y docker-ce docker-ce-cli containerd.io

echo "=== 启动 Docker ==="
sudo systemctl start docker

echo "=== 检查 Docker 运行状态 ==="
if ! docker -v &> /dev/null; then
  echo "检查Docker未安装成功."
  exit 1
else
  docker_version_info=$(docker -v)
  echo "$docker_version_info"
  echo "检查Docker以安装成功."
fi

echo "=== 设置Docker开机自启动 ==="
sudo systemctl enable docker

echo "=== 为 Docker 设置代理 ==="
sudo mkdir -p /etc/systemd/system/docker.service.d
echo "[Service]
Environment='HTTP_PROXY=http://$PROXY'
Environment='HTTPS_PROXY=http://$PROXY'" | sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf > /dev/null

sudo systemctl daemon-reload
sudo systemctl restart docker

#!/bin/bash -e

echo "Ubuntu 20.04"

# 设置代理地址
PROXY_URL="http://192.168.10.156:10809"

# 函数:设置APT代理
setup_apt_proxy() {
  local proxy_conf="/etc/apt/apt.conf.d/proxy.conf"
  if ! grep -q "$PROXY_URL" "$proxy_conf"; then
    echo "Acquire::http::proxy \"$PROXY_URL\";" | sudo tee -a "$proxy_conf"
    echo "Acquire::https::proxy \"$PROXY_URL\";" | sudo tee -a "$proxy_conf"
    echo "设置代理 '$PROXY_URL' in $proxy_conf, 成功."
  else
    echo "这个代理 '$PROXY_URL' 已存在在 $proxy_conf 请继续."
  fi
}

# 函数:安装 Docker
install_docker() {
  sudo apt-get remove -y docker docker-engine docker.io containerd runc
  sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  sudo apt-get update
  sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
  curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  sudo apt-get update
  sudo apt-get install -y docker-ce docker-ce-cli containerd.io

  echo "=== 启动 Docker ==="
  sudo systemctl start docker

  echo "=== 检查 Docker 运行状态 ==="
  if ! docker -v; then
    echo "检查Docker未安装成功."
    exit 1
  else
    echo "检查Docker以安装成功."
  fi

  echo "=== 设置Docker开机自启动 ==="
  sudo systemctl enable docker

  echo "=== 为 Docker 设置代理 ==="
  sudo mkdir -p /etc/systemd/system/docker.service.d
  echo "[Service]
Environment=\"HTTP_PROXY=$PROXY_URL\"
Environment=\"HTTPS_PROXY=$PROXY_URL\"" | sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf

  sudo systemctl daemon-reload
  sudo systemctl restart docker
}

# 设置系统环境变量
export http_proxy="$PROXY_URL"
export https_proxy="$PROXY_URL"

# 执行函数
setup_apt_proxy
install_docker

sudo docker run hello-world
为什么可以在docker.service.d 给docker 添加代理

在执行docker pull时,是由守护进程dockerd来执行。 因此,代理需要配在dockerd的环境中。 而这个环境,则是受systemd所管控,因此实际是systemd的配置。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值