最近使用的是虚拟机方式安装home assistant os,在使用中发现安装addon屡屡失败,究其原因还是网络问题,于是使用虚拟机安装了ubuntu服务器并安装了docker进行测试,第一步就卡在了运行hello world上镜像无法下载,于是搜索网络发现了下面的方法来解决
配置docker代理实现镜像下载
原文链接如何优雅的给 Docker 配置网络代理,有三个办法
- 修改/etc/docker/daemon.json
vi /etc/docker/daemon.json
vi /etc/docker/daemon.json
{
"proxies": {
"http-proxy": "socks5://192.168.208.55:1080",
"https-proxy": "socks5://192.168.208.55:1080",
"no-proxy": "127.0.0.0/8"
}
}
重启docker
systemctl restart docker
- /etc/systemd/system/docker.service.d/新建http-proxy.conf
vi /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=socks5://192.168.199.5:1080"
Environment="HTTPS_PROXY=socks5://192.168.199.5:1080"
systemctl daemon-reload # 重载配置文件
systemctl show --property Environment docker # 查看环境变量是否配置成功
systemctl restart docker
- 修改/lib/systemd/system/docker.service
在[Service]下添加并保存
Environment="HTTP_PROXY=socks5://192.168.199.5:1080"
Environment="HTTPS_PROXY=socks5://192.168.199.5:1080"
systemctl daemon-reload
systemctl restart docker
上述方法在我的ubuntu服务器上得到了验证。
home assistant os docker配置文件daemon
我安装的是虚拟机版的home assistant和树莓派版本
在修改配置文件daemon.json发现,/是只读的,而daemon.json这个文件从而也是只读的,无法修改。
找寻网络,发现如下的解决方法,文章出处,相关网址,home-assistant配置文件及定义,俄罗斯网友的博客及不同系统的解决方法
相关原理,在/etc/udev/rules.d目录是可写的,在此目录建立两个文件,一个是docer的重定义文件,一个是系统启动时重写daemon.json的定义,机器重启时,使用重定义的文件替换daemon.json文件,从而更改docker的配置来满足要求。
虚拟机的实现方法,打开虚拟机终端login进入shell或ssh连接haos服务器
cd /tmp #因为/tmp可写才能下载解压
curl -s -L mansmarthome.info/udev-latest.tar | tar -x -f - -v -C /etc/udev/rules.d/ #下载并解压文档至指定目录
cd /etc/udev/rules.d/
vi docker-daemon.json #修改docker-daemon.json内容为你需要的
保存文件,重启主机。我的文件内容如下:
# more /etc/udev/rules.d/docker-daemon.json
{
"storage-driver": "overlay2",
"log-driver": "journald",
"experimental": true,
"ip6tables": true,
"log-opts": {
"tag": "{{.Name}}"
},
"data-root": "/mnt/data/docker",
"deprecated-key-path": "/mnt/overlay/etc/docker/key.json",
"bip": "172.30.232.1/23",
"proxies": {
"http-proxy": "socks5://192.168.199.5:1080",
"https-proxy": "socks5://192.168.199.5:1080",
"no-proxy": "127.0.0.0/8"
}
}
# 代理的那一段是我修改的,你可以修改成你需要的
重启后,你可以查看你的/etc/docker/daemon.json应该是和你的修改内容一致了
安装了一个file editor的addon, 先前不能正常安装的,可以正常安装了。