Não é possível fazer 'yum install' dentro do container LXC no CentOS 7

4

Estou tentando criar um container do CentOS dentro do CentOS 7 e hospedar meu aplicativo. Mas não consigo instalar nada dentro do contêiner.

Se eu fizer ' yum -y install nodejs ' fiquei abaixo do erro

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.fibergrid.in
 * extras: mirror.fibergrid.in
 * updates: mirror.fibergrid.in
No package nodejs available.
Error: Nothing to do

Verifica-se que a Internet não está disponível dentro do contêiner, mas fora da Internet do contêiner está disponível.

    
por sudheer KB 02.03.2017 / 06:48

3 respostas

3

Eu reformularia sua pergunta Não consigo acessar a Internet dentro do contêiner e examinar similares .

Algumas sugestões que você pode tentar são:

service docker restart

e

pkill docker
iptables -t nat -F
ifconfig docker0 down
brctl delbr docker0
docker -d

UPDATE: Desde que você especificou posteriormente que está usando o lxc, eu pesquisaria "sem conexão com a Internet dentro de contêineres lxc". Para outro usuário (que postou sua configuração em maiores detalhes, veja aqui ) foi um problema de firewall. Ele teve que adicionar:

-A FORWARD -s 10.0.3.0/24 -o eth0 -j ACCEPT                                     
-A FORWARD -d 10.0.3.0/24 -o lxcbr0 -j ACCEPT

ATUALIZAÇÃO: eu configurei um sistema CentOS 7 apenas para testar isso, e pude criar um contêiner lXC do CentOS dentro dele sem esforço seguindo o estas instruções . Tem conectividade externa sem necessidade de ajustar a configuração.

yum install epel-release
yum install debootstrap perl libvirt
yum install lxc lxc-templates
systemctl start lxc.service
systemctl start libvirtd 
lxc-create -n <name> -t centos
lxc-start -n <name>
yum install epel-release
yum -y install nodejs

Aqui está a configuração de rede resultante dentro do contêiner:

ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
      valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
      valid_lft forever preferred_lft forever
5: eth0@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether fe:9d:63:f7:72:ec brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.122.153/24 brd 192.168.122.255 scope global dynamic eth0
      valid_lft 3437sec preferred_lft 3437sec
    inet6 fe80::fc9d:63ff:fef7:72ec/64 scope link
      valid_lft forever preferred_lft forever

cat /etc/resolv.conf
; generated by /usr/sbin/dhclient-script
nameserver 192.168.122.1

 ip route
 default via 192.168.122.1 dev eth0
 169.254.0.0/16 dev eth0  scope link  metric 1005
 192.168.122.0/24 dev eth0  proto kernel  scope link  src 192.168.122.153

 iptables -L
 Chain INPUT (policy ACCEPT)
 target     prot opt source               destination
 Chain FORWARD (policy ACCEPT)
 target     prot opt source               destination
 Chain OUTPUT (policy ACCEPT)
 target     prot opt source               destination

Se o seu contêiner lxc for diferente do meu, indique as diferenças; caso contrário, o problema provavelmente está na configuração da máquina host. Para saber se é o firewall, eu permitiria todo o tráfego (temporariamente confiando em um firewall externo) e verificaria novamente. Além disso, verifique se você tem as regras de encaminhamento mencionadas anteriormente. No meu host do CentOS, encontrei as seguintes entradas IPTABLES que foram criadas automaticamente:

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            192.168.122.0/24     ctstate RELATED,ESTABLISHED
ACCEPT     all  --  192.168.122.0/24     0.0.0.0/0
    
por 06.03.2017 / 10:01
0
  • Primeiro, verifique a conectividade IP

Tente o IP da interface inicial do ping mostrado pelo comando ifconfig . Verifique o IP do gateway padrão do IP de saída do comando ip route ao lado da rota 0.0.0.0. Tente pingar isso.

  • Se os pings estiverem ok, verifique a configuração do DNS:

Executar comando:

#vi /etc/reslov/conf

nameserver:8.8.8.8
nameserver:8.8.4.4

Defina o servidor de nomes para hospedar o endereço IP da interface ou o endereço do servidor DNS do roteador local.

  • Reinicie a interface de rede da máquina virtual

/etc/init.d/network restart

    
por 08.03.2017 / 23:28
0

Verifique sua conexão com a Internet e habilite o repositório EPEL, se não ativar:

Então:

$ sudo yum install npm  
$ node -v    

ou Também pode seguir estes documentos: link link a">

    
por 10.03.2017 / 05:22