0

我是 Docker 新手,并试图检查如何在 docker 容器中进行更改并将它们提交以反映在结果中。我在 Docker-CE 上运行了 AWX,并在awx_web容器中创建了一些更改以更新 UI 徽标,如 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

发布此消息,我已提交更改,以便更改永久反映在图像文件和 UI 中,使用:

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)
4

1 回答 1

1

容器是图像的运行实例,容器 id 对于特定图像是唯一的。
我们不能使用相同的 12 位容器 ID 作为其他图像的参考。当我们使用“提交”时,它会为新图像创建一个新的容器。

这个新容器将包含所有需要的更改。

您可以尝试命名容器。

  1. 为容器命名(使用 docker rename 命令)。
  2. 在容器中进行更改。
  3. 提交它。
  4. 为为新图像生成的新容器赋予相同的名称。
  5. 用其他名称重命名旧容器。

现在您拥有相同的容器名称(与之前使用的一样),但使用了新的 Image。

于 2018-09-13T12:59:52.597 回答