Docker не может получить доступ к Интернету из контейнера LXC

Docker не может получить доступ к Интернету из контейнера LXC

Я запустил контейнер Ubuntu 20.04 LXC на RedHat 8.6 с помощью следующей команды

lxc launch ubuntu:20.04 --storage default -c security.privileged=true -c boot.autostart=true --network lxdbr0

Я установил Docker в контейнер и настроил параметры сетевого прокси-сервера, /etc/systemd/system/docker.service.d/http-proxy.confа затем перезапустил службу Docker.


[Service]
Environment="HTTP_PROXY=<proxy address redacted>"
Environment="HTTPS_PROXY=<proxy address redacted>"

Я получаю ошибку тайм-аута TLS-рукопожатия при попытке извлечь изображение

root@still-katydid:~# docker pull nginx
Using default tag: latest
Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: TLS handshake timeout

Глядя на это, /var/log/syslogя вижу некоторые ошибки.

Dec  8 11:57:36 still-katydid dockerd[9606]: time="2022-12-08T11:57:36.486272382Z" level=warning msg="Your kernel does not support cgroup blkio weight"
Dec  8 11:57:36 still-katydid dockerd[9606]: time="2022-12-08T11:57:36.486290117Z" level=warning msg="Your kernel does not support cgroup blkio weight_device"
Dec  8 11:57:36 still-katydid dockerd[9606]: time="2022-12-08T11:57:36.487001498Z" level=info msg="Loading containers: start."
Dec  8 11:57:36 still-katydid dockerd[9606]: time="2022-12-08T11:57:36.489111401Z" level=warning msg="Running modprobe bridge br_netfilter failed with message: modprobe: WARNING: Module bridge not found in directory /lib/modules/4.18.0-372.9.1.el8.x86_64\nmodprobe: WARNING: Module br_netfilter not found in directory /lib/modules/4.18.0-372.9.1.el8.x86_64\n, error: exit status 1"
Dec  8 11:57:36 still-katydid dockerd[9606]: time="2022-12-08T11:57:36.591405424Z" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"

Я знаю, что настройки адреса прокси-сервера верны, так как они также настроены в моем .bashrcфайле, и я могу использовать curl-адреса, напримерhttps://www.bbc.co.ukуспешно.

Брандмауэр отключен как на хосте, так и в контейнере.

Я перезагрузил контейнер и хост несколько раз.

решение1

Я решил свою проблему. В моем пароле был специальный символ !. Я уже экранировал его с помощью, %21но оказалось, что docker требует двойной %%.

Поэтому для паролей прокси-сервера Docker !необходимо экранировать символ с помощью%%21

Более подробная информация доступна здесьhttps://docs.docker.com/config/daemon/systemd/

Связанный контент