TLDR:在使用docker时,我可以通过更改容器的配置和/或docker-compose.yml
文件中的图像以及运行docker-compose up
来重新创建容器。是否有任何用于重新创建容器(以应用更改)的通用等效方法,该容器是由一个裸的坞创建/运行命令创建的?
详细说明:
关联船坞组合文档指出:
如果存在一个服务的现有容器,并且在容器创建后更改了服务的配置或映像,那么docker-compose通过停止和重新创建容器来获取更改(保留已安装的卷)。
我很难理解在这一娱乐活动中实际执行了哪些底层步骤,例如,码头(没有撰写)文档似乎根本没有使用重新创建的术语。
简单地运行docker container rm xy
和docker container create/run
(以及传递完整和修改的配置)安全吗?还是码头工人实际上在引擎盖下做了更多?
我已经找到了应用特定配置更改(例如这是关于端口映射的 )的答案,但我仍然不知道是否有更一般的答案。
发布于 2022-05-25 12:38:04
我很难理解在这一娱乐活动中实际执行了哪些底层步骤,例如,码头(没有撰写)文档似乎根本没有使用重新创建的术语。
docker-compose
是一个高级工具;它在一次操作中执行需要使用docker
cli的多个命令。当docker-compose
说,“停靠-组合起来通过停止和重新创建容器来获取更改”时,这意味着它所做的工作相当于:
docker stop <somecontainer>
docker rm <somecontainer>
docker run ...
(其中...
代表docker-compose.yaml
中服务定义所隐含的任何配置)。
发布于 2022-05-25 14:03:22
假设它认识到了container1
中的一个变化--它是这样做的(不完全是,通过API工作):
docker compose rm -fs container1
docker compose create (--build) container1
docker compose start container1
什么是部分接近(取决于您的撰写-配置):
docker rm -f projectname_container1
(docker build --flags)
docker create --allDozensOfAttributes projectname_container1
docker start projectname_container1
docker network connect (--flags) projectname_networkname projectname_container1
and maybe more..
因此,如果合适的话,我建议对单个服务使用docker组合命令,而不是使用docker。
https://stackoverflow.com/questions/72377424
复制相似问题