Как связать контейнер с новым изображением? - PullRequest
0 голосов
/ 13 сентября 2018

Я новичок в Docker и попытался проверить, как вносить изменения в Docker-контейнер и зафиксировать их для отражения в результатах.У меня AWX работает на Docker-CE, и я создал изменения в контейнере awx_web для обновления логотипа пользовательского интерфейса, как указано в документации Ansible Tower:

docker cp custom_console_logo.png aea2551951d5:/var/lib/awx/public/static/assets

, и создал local_settings.json в /var/lib/awx/public/static/один из запущенных контейнеров awx_web с использованием следующего, а затем с помощью команды bash для создания и сохранения файла:

docker exec -it aea2551951d5 bash

Опубликовать это, я зафиксировал изменения, чтобы изменения постоянно отображались в файле изображения ив пользовательском интерфейсе с помощью:

docker commit aea2551951d5 ansible/awx_web

Я проверил изменения в файлах контейнера, и, похоже, все в порядке, однако изменения не отражаются, когда я проверял их в браузере.Похоже, существующий контейнер указывает на старый файл изображения:

CONTAINER ID        IMAGE
aea2551951d5        b7c261b76010

Я не уверен, что было пропущено.Кто-нибудь может подсказать, если я что-то пропустил и как мне это исправить?

Ниже приведены контейнеры:

[root@localhost~]# docker ps
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                                                 NAMES
80ab6bf562a9        ansible/awx_task:latest      "/tini -- /bin/sh -c…"   13 days ago         Up 3 days           8052/tcp                                              awx_task
aea2551951d5        b7c261b76010                 "/tini -- /bin/sh -c…"   13 days ago         Up 3 hours          0.0.0.0:80->8052/tcp                                  awx_web
e789a4a82a9e        memcached:alpine             "docker-entrypoint.s…"   13 days ago         Up 3 days           11211/tcp                                             memcached
a8c74584255c        ansible/awx_rabbitmq:3.7.4   "docker-entrypoint.s…"   13 days ago         Up 3 days           4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 25672/tcp   rabbitmq
25f6f6ca7766        postgres:9.6                 "docker-entrypoint.s…"   13 days ago         Up 3 days           5432/tcp                                              postgres

Ниже приведены изображения:

[root@localhost~]# docker image ls
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
ansible/awx_web        latest              1accc59cbdee        2 hours ago         1.06GB
b7c261b76010           latest              998ec3e77fd8        3 hours ago         1.06GB
postgres               9.6                 106bdfb062df        6 weeks ago         235MB
ansible/awx_task       latest              535bb2b8e1f3        6 weeks ago         1.07GB
ansible/awx_web        <none>              b7c261b76010        6 weeks ago         1.04GB
hello-world            latest              2cb0d9787c4d        2 months ago        1.85kB
memcached              alpine              b40e8fa7e3e5        2 months ago        8.69MB
ansible/awx_rabbitmq   3.7.4               e08fe791079e        5 months ago        85.6MB
[root@clab2726vw0001 ~]#

Информация об окружающей среде:

Docker Version: 18.06.0-ce, build 0ffa825
AWX Version: 1.0.6.41
Ansible Version: 2.6.1
RHEL Version: Red Hat Enterprise Linux Server release 7.5 (Maipo)

1 Ответ

0 голосов
/ 13 сентября 2018

Контейнеры - это запущенные экземпляры изображений, а идентификатор контейнера является уникальным для конкретного изображения.
Мы не можем использовать тот же 12-значный идентификатор контейнера в качестве ссылки для других изображений.Когда мы используем «commit», он создает новый свежий контейнер для нового образа.

Этот новый контейнер будет содержать все необходимые изменения.

Вы можете попробовать присвоить имя контейнеру.

  1. Дать имя контейнеру (с помощью команды переименования docker).
  2. Внести изменения в контейнер.
  3. Зафиксируйте его.
  4. Присвойте то же имя новому контейнеру, созданному для нового образа.
  5. Переименуйте старый контейнер с другим именем.

Теперь у вас есть то же имя контейнера (которое вы использовали ранее), но с новым изображением.

...