Docker y configuración de la conectividad.

Docker y configuración de la conectividad.

Saqué un contenedor del repositorio público y quiero instalarle un paquete. Pero no hubo éxito... ¿Alguna ayuda, por favor? ¿Cómo realizar la configuración para la conectividad de Docker a los repositorios de paquetes?

[root@adf2 adf2_umb_docker]# ventana acoplable ps -l

ID DEL CONTENEDOR IMAGEN COMANDO ESTADO CREADO NOMBRES DE PUERTOS

8a9a015c5301 devcafe/cmake-cookbook_circleci_ubuntu16.04-pgi18.4 "bash" Hace 8 minutos Hasta 8 minutos admiring_shirley

[root@adf2 adf2_umb_docker]# docker run devcafe/cmake-cookbook_circleci_ubuntu16.04-pgi18.4 bash -c "apt-get -y install vim"

Leyendo listas de paquetes...

Construyendo árbol de dependencia...

Leyendo información del estado...

E: No se puede localizar el paquete vim

El administrador me informó sobre este registro del firewall:

23 de agosto 23:02:08 adf2 firewalld[5882]: ADVERTENCIA: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t nat -C OUTPUT -m addrtype --dst-type LOCAL -j DOCKER ! --dst 127.0.0.0/8' falló: iptables: no hay cadena/objetivo/coincidencia con ese nombre.

23 de agosto 23:02:08 adf2 firewalld[5882]: ADVERTENCIA: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t filter -C FORWARD -o docker0 -j DOCKER' falló: iptables: No hay cadena/objetivo/coincidencia por ese nombre.

23 de agosto 23:02:08 adf2 firewalld[5882]: ADVERTENCIA: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t filter -C FORWARD -j DOCKER-ISOLATION' falló: iptables: No hay cadena/objetivo/coincidencia con eso nombre.

23 de agosto 23:02:08 adf2 firewalld[5882]: ADVERTENCIA: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t nat -C POSTROUTING -s 192.168.0.0/20 ! -o docker0 -j MASQUERADE' falló: iptables: no hay cadena/objetivo/coincidencia con ese nombre.

23 de agosto 23:02:08 adf2 firewalld[5882]: ADVERTENCIA: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t nat -C DOCKER -i docker0 -j RETURN' falló: iptables: regla incorrecta (cumple una regla coincidente existen en esa cadena?).

23 de agosto 23:02:08 adf2 firewalld[5882]: ADVERTENCIA: COMMAND_FAILED: '/usr/sbin/iptables -w2 -D FORWARD -i docker0 -o docker0 -j DROP' falló: iptables: regla incorrecta (cumple una regla coincidente existen en esa cadena?).

23 de agosto 23:02:08 adf2 firewalld[5882]: ADVERTENCIA: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t filter -C FORWARD -i docker0 -o docker0 -j ACCEPT' falló: iptables: mala regla (no ¿Existe una regla de coincidencia en esa cadena?).

23 de agosto 23:02:08 adf2 firewalld[5882]: ADVERTENCIA: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t filter -C FORWARD -i docker0! -o docker0 -j ACCEPT' falló: iptables: regla incorrecta (¿existe una regla coincidente en esa cadena?).

23 de agosto 23:02:08 adf2 firewalld[5882]: ADVERTENCIA: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t filter -C FORWARD -o docker0 -m conntrack --ctstate RELACIONADO,ESTABLECIDO -j ACCEPT' falló: iptables: Regla incorrecta (¿existe una regla coincidente en esa cadena?).

23 de agosto 23:02:09 adf2 firewalld[5882]: ADVERTENCIA: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t filter -C FORWARD -o docker0 -j DOCKER' falló: iptables: No hay cadena/objetivo/coincidencia por ese nombre.

Respuesta1

No es así como se agrega un paquete en Docker. Con su método, haga que una instancia de contenedor se agregue un paquete a sí misma. Eso hace que el contenedor intente acceder a Internet, lo que puede estar prohibido por las reglas locales. Esto también crea problemas futuros:

  • Cómo hacer una copia de seguridad de este contenedor
  • ¿Cómo reconstruirlo si es necesario?

La forma correcta esderivar la imagen, usando un Dockerfile:

FROM devcafe/cmake-cookbook_circleci_ubuntu16.04-pgi/18.4
RUN apt-get -y install vim

Luego creas la imagen usando:

docker build -t "TheDerivedImageName" $TheDirectpryWithTheDockerfFile

Y cuando sea necesario, ejecute la imagen, creando una instancia de contenedor a partir de ella:

docker run TheDerivedImageName

El Dockerfile y los archivos asociados son archivos host: se puede realizar una copia de seguridad de ellos, colocarlos en un sistema de control de fuente (git...), compartirlos con otras personas...

Además, instalar Vim en la imagen de Docker no es necesario y sugiere que tal vez no estés usando Docker correctamente. Si necesita crear/editar archivos en el contenedor, puede:

  • Colóquelos en la imagen en el momento de la compilación usando una COPYdeclaración en el Dockerfile.
  • Comparta un archivo o directorio en el host con el contenedor usando un"montaje para unir"y editarlos desde el host.

información relacionada