докер и настройка подключения

докер и настройка подключения

Я вытащил контейнер из публичного репозитория и хочу установить в него пакет. Но безуспешно... Помогите, пожалуйста? Как настроить подключение докера к репозиториям пакетов?

[root@adf2 adf2_umb_docker]# докер пс -l

ИДЕНТИФИКАТОР КОНТЕЙНЕРА ОБРАЗ КОМАНДА СОЗДАН СТАТУС ИМЕНА ПОРТОВ

8a9a015c5301 devcafe/cmake-cookbook_circleci_ubuntu16.04-pgi18.4 "bash" 8 минут назад Вверх 8 минут admiring_shirley

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

Чтение списков пакетов...

Построение дерева зависимостей...

Чтение информации о состоянии...

E: Не удалось найти пакет vim

Администратор сообщил мне об этом журнале брандмауэра:

23 авг 23:02:08 adf2 firewalld[5882]: ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t nat -C OUTPUT -m addrtype --dst-type LOCAL -j DOCKER ! --dst 127.0.0.0/8' не удалось: iptables: Нет цепочки/цели/совпадения с таким именем.

23 авг. 23:02:08 adf2 firewalld[5882]: ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t filter -C FORWARD -o docker0 -j DOCKER' не удалось: iptables: Нет цепочки/цели/совпадения с таким именем.

23 авг. 23:02:08 adf2 firewalld[5882]: ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: «/usr/sbin/iptables -w2 -t filter -C FORWARD -j DOCKER-ISOLATION» не удалось: iptables: Нет цепочки/цели/совпадения с таким именем.

23 авг 23:02:08 adf2 firewalld[5882]: ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t nat -C POSTROUTING -s 192.168.0.0/20 ! -o docker0 -j MASQUERADE' не удалось: iptables: Нет цепочки/цели/совпадения с таким именем.

23 авг. 23:02:08 adf2 firewalld[5882]: ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t nat -C DOCKER -i docker0 -j RETURN' не выполнено: iptables: Неверное правило (существует ли в этой цепочке соответствующее правило?).

23 авг. 23:02:08 adf2 firewalld[5882]: ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w2 -D FORWARD -i docker0 -o docker0 -j DROP' не удалось: iptables: Неверное правило (существует ли в этой цепочке соответствующее правило?).

23 авг. 23:02:08 adf2 firewalld[5882]: ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t filter -C FORWARD -i docker0 -o docker0 -j ACCEPT' не выполнено: iptables: Неверное правило (существует ли в этой цепочке соответствующее правило?).

23 авг. 23:02:08 adf2 firewalld[5882]: ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t filter -C FORWARD -i docker0 ! -o docker0 -j ACCEPT' не удалось: iptables: Неверное правило (существует ли в этой цепочке соответствующее правило?).

23 авг. 23:02:08 adf2 firewalld[5882]: ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t filter -C FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT' не удалось: iptables: Неверное правило (существует ли в этой цепочке соответствующее правило?).

23 авг. 23:02:09 adf2 firewalld[5882]: ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t filter -C FORWARD -o docker0 -j DOCKER' не удалось: iptables: Нет цепочки/цели/совпадения с таким именем.

решение1

Это не то, как вы добавляете пакет в Docker. С вашим методом экземпляр контейнера добавляет пакет к себе.. Это заставляет контейнер пытаться получить доступ к интернету, что может быть запрещено локальными правилами. Это также создает будущие проблемы:

  • Как сделать резервную копию этого контейнера
  • Как его перестроить, если необходимо

Правильный путь —извлечь образ, используя Dockerfile:

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

Затем вы создаете изображение, используя:

docker build -t "TheDerivedImageName" $TheDirectpryWithTheDockerfFile

И при необходимости запустить образ, создав из него экземпляр контейнера:

docker run TheDerivedImageName

Dockerfile и связанные с ним файлы являются файлами хоста: их можно резервировать, помещать в систему управления исходным кодом (git...), предоставлять к ним доступ другим людям...

Более того, установка Vim в образе docker не нужна и намекает, что вы, возможно, не используете Docker должным образом. Если вам нужно создать/отредактировать файлы в контейнере, вы либо:

  • Добавьте их в образ во время сборки, используя COPYоператор в Dockerfile.
  • Предоставьте контейнеру общий доступ к файлу или каталогу на хосте с помощью"привязать крепление"и редактировать их с хоста.

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