Popey 的建议中概述的基本原则有效:
获取主机IP地址(如容器所见):
export LXD_ADDRESS=$(ip -4 -o address show dev lxdbr0 | awk -F'[ /]*' '{print $4}')
Run Code Online (Sandbox Code Playgroud)使用它来设置默认配置文件代理设置:
printf '%s\n' '#cloud-config' 'apt:' " proxy: http://$LXD_ADDRESS:8000" |
lxc profile set default user.user-data -
Run Code Online (Sandbox Code Playgroud)但是,有一些注意事项。
snapcraft cleanbuild通过通常以外的其他机制下载大量软件包apt-get,不受此配置的影响。这种疯狂可以在这部分输出中看到:
Preparing to pull glue
Pulling glue
Preparing to pull cassandra
Get:1 http://archive.ubuntu.com/ubuntu xenial InRelease [247 kB]
Get:2 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB]
...
Get:46 http://archive.ubuntu.com/ubuntu xenial-backports/universe Translation-en [3004 B]
Fetched 26.0 MB in 6s (4237 kB/s)
Get:1 ca-certificates-java_20160321_all.deb [12.9 kB]
Fetched 12.9 kB in 0s (0 B/s)
Get:1 libxdmcp6_1.1.2-1.1_amd64.deb [11.0 kB]
Fetched 11.0 kB in 0s (0 B/s)
Get:1 init-system-helpers_1.29ubuntu4_all.deb [32.3 kB]
Fetched 32.3 kB in 0s (0 B/s)
Get:1 default-jre-headless_1.8-56ubuntu2_amd64.deb [4380 B]
Fetched 4380 B in 0s (0 B/s)
Get:1 default-jdk_1.8-56ubuntu2_amd64.deb [968 B]
Fetched 968 B in 0s (0 B/s)
Get:1 libkrb5-3_1.13.2+dfsg-5ubuntu2_amd64.deb [273 kB]
Run Code Online (Sandbox Code Playgroud)
其中有很多,而且各个请求无论如何都会让它们慢得要命,而且这还不包括之前设置的 apt 代理设置不会影响它们。
因此,我设置了http_proxy环境变量:
lxc profile set default environment.http_proxy "http://$LXD_ADDRESS:3128"
Run Code Online (Sandbox Code Playgroud)
对于 HTTPS 来说也是如此,因为容器中的其他一些下载使用了 HTTPS。我通常更喜欢apt-cacher-ng,但它不支持HTTPS CONNECT,所以我改用squid。
| 归档时间: |
|
| 查看次数: |
1007 次 |
| 最近记录: |