2016-01-10 7 views
1

Я на Arch Linux машине, и нет сети на хосте при запуске контейнера с помощью этой команды:Нет сети на хост-машине, когда работает грузчиком контейнер

docker run jenkins 

После остановки Docker сеть назад. Любые предложения более чем приветствуются.

Edit:

Кажется, что при работе с опцией -p и предоставление какой-либо другой порт, чем 80, сеть доступна в течение нескольких минут, а затем он снова теряется.

**> docker version** 

Client: 
Version:  1.9.1 
API version: 1.21 
Go version: go1.5.1 
Git commit: a34a1d5-dirty 
Built:  Sun Nov 22 00:15:15 UTC 2015 
OS/Arch:  linux/amd64 

Server: 
Version:  1.9.1 
API version: 1.21 
Go version: go1.5.1 
Git commit: a34a1d5-dirty 
Built:  Sun Nov 22 00:15:15 UTC 2015 
OS/Arch:  linux/amd64 

**> docker info** 

Containers: 31 
Images: 57 
Server Version: 1.9.1 
Storage Driver: devicemapper 
Pool Name: docker-8:5-548039-pool 
Pool Blocksize: 65.54 kB 
Base Device Size: 107.4 GB 
Backing Filesystem: 
Data file: /dev/loop0 
Metadata file: /dev/loop1 
Data Space Used: 3.584 GB 
Data Space Total: 107.4 GB 
Data Space Available: 7.741 GB 
Metadata Space Used: 7.496 MB 
Metadata Space Total: 2.147 GB 
Metadata Space Available: 2.14 GB 
Udev Sync Supported: true 
Deferred Removal Enabled: false 
Deferred Deletion Enabled: false 
Deferred Deleted Device Count: 0 
Data loop file: /var/lib/docker/devicemapper/devicemapper/data 
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata 
Library Version: 1.02.113 (2015-12-05) 
Execution Driver: native-0.2 
Logging Driver: json-file 
Kernel Version: 4.2.5-1-ARCH 
Operating System: Arch Linux (containerized) 
CPUs: 4 
Total Memory: 7.709 GiB 
Name: arch 
ID: OF5Y:H7O4:M4R6:GCF6:NSEU:LNG6:K7NV:FJDM:DUVI:6KOM:LTRB:EUPP 

> Iptables -L

Chain INPUT (policy ACCEPT) 
target  prot opt source    destination   

Chain FORWARD (policy ACCEPT) 
target  prot opt source    destination   
DOCKER  all -- anywhere    anywhere    
ACCEPT  all -- anywhere    anywhere    ctstate RELATED,ESTABLISHED 
ACCEPT  all -- anywhere    anywhere    
ACCEPT  all -- anywhere    anywhere    

Chain OUTPUT (policy ACCEPT) 
target  prot opt source    destination   

Chain DOCKER (1 references) 
target  prot opt source    destination   
+1

Это также происходит с другими изображениями, чем 'jenkins'? Что такое вывод 'docker version'? Что такое вывод 'docker info'? – Thomasleveil

+0

@Thomasleveil Я обновил вопрос с выходом. Также я новичок с Докером. Однако представляется, что если я укажу порт, отличный от 80, например, 'docker run .. -p 81 ..', то у меня есть сеть. – valk

+0

На самом деле в любом случае нет сети. – valk

ответ

1

Решение для создания или редактирования /etc/connman/main.conf следующим:

[General] 
NetworkInterfaceBlacklist=vmnet,vboxnet,virbr,ifb,docker,veth,eth,wlan 

И перезапустить Connman.

described here.

3

Это может быть, что параметры сети докер хоста не хорошо посажена с Докер. Дайте попробовать на Arch Linux specific instructions regarding networking, что вы можете найти в документации Докер:

Если вручную настроить сеть с помощью systemd-network версии 220 или выше, контейнеры вы начать с Докер может быть не в состоянии получить доступ к сети. Начиная с версии 220, настройка переадресации для данной сети (net.ipv4.conf.<interface>.forwarding) по умолчанию равна off. Этот параметр предотвращает переадресацию IP-адресов. Он также конфликтует с Docker, который позволяет установить net.ipv4.conf.all.forwarding в контейнере.

Чтобы обойти эту проблему, отредактируйте <interface>.network файл в /etc/systemd/network/ на вашем Докер хоста оных> следующий блок:

[Network] 
... 
IPForward=kernel 
... 

Эта конфигурация позволяет IP-переадресацию из контейнера, как ожидалось.


дают также попробовать в docker0 Bridge gets no IP/no internet access in containers разделе вики Arch Linux относительно Докер:

Docker позволяет IP-переадресацию сам по себе, но по умолчанию Systemd переопределяет соответствующий параметр SYSCTL. Следующий отключает это переопределение (для всех интерфейсов):

# cat > /etc/systemd/network/ipforward.network <<EOF 
[Network] 
IPForward=ipv4 
EOF 

# cat > /etc/systemd/network/99-docker.conf <<EOF 
net.ipv4.ip_forward = 1 
EOF 

# sysctl -w net.ipv4.ip_forward=1 

Наконец перезапуске в Systemd-networkd и Докер услуги.

+0

Я пробовал это раньше, но на этот раз тоже попробовал, и это не помогло. Я, вероятно, что-то пропустил, и у меня нет инструментов для отладки. Есть ли какие-нибудь? Спасибо всем за усилия! – valk

+1

Он чувствует, что это имеет какое-то отношение к правилам пересылки вашей сети, но я недостаточно разбираюсь в сетях и Arch Linux, чтобы оказать здесь дополнительную помощь. Я бы предложил начать новую виртуальную машину с той же версией Arch Linux и установить Docker на нее, следуя официальному документу Docker для Arch Linux, чтобы узнать, воспроизводите ли вы эту проблему. Если у вас нет этой проблемы, сравните сетевые настройки этой виртуальной машины с настройками вашего сервера. Надеемся, что различия выявят корень проблемы. – Thomasleveil

+0

спасибо за большое усилие :) – valk

 Смежные вопросы

  • Нет связанных вопросов^_^