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

时间:2018-09-13 09:54:55

标签: docker rhel7 ansible-awx

我是Docker的新手,试图检查如何在Docker容器中进行更改并将其提交以反映结果。我在Docker-CE上运行了AWX,并在awx_web容器中进行了更改,以更新Ansible Tower文档中提到的UI徽标:

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

使用以下命令,然后使用bash命令创建并保存文件,并在local_settings.json中创建/var/lib/awx/public/static/到正在运行的awx_web容器之一中:

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)

1 个答案:

答案 0 :(得分:1)

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

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

您可以尝试命名容器。

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

现在,您具有与以前使用的容器名称相同的名称,但是具有新的Image。