如何将容器与新图像链接?

问题描述 投票:0回答:1

我是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中创建了运行awx_web容器之一的/var/lib/awx/public/static/,然后使用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)
docker rhel7 ansible-awx
1个回答
1
投票

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

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

您可以尝试命名容器。

  1. 为容器命名(使用docker rename命令)。
  2. 在容器中进行更改。
  3. 承诺吧。
  4. 为新图像生成的新容器指定相同名称。
  5. 用其他名称重命名旧容器。

现在你有了相同的容器名称(就像你之前使用的那样)但是有了新的Image。

© www.soinside.com 2019 - 2024. All rights reserved.