如何更改已经运行的容器的Docker配置?

时间:2018-01-02 10:46:15

标签: docker docker-compose sentry

我已经安装了Sentry onpremise,经过一段时间的修补后,我开始使用命令行将system.url-prefix选项更改为正确的URL。但是仍有2个问题:

  • 此选项不会持续
  • 您不能对mail.from选项执行相同操作,该选项只能在运行前设置。

有3个配置文件正在播放,但并非所有配置文件都注册,这让人感到困惑。

  1. sentry.conf.py
  2. 包含

    SENTRY_OPTIONS['system.url-prefix'] = 'https://sentry.mydomain.com'
    SENTRY_OPTIONS['mail.from'] = 'sentry@mydomain.com'
    
    1. config.yml
    2. mail.from: 'sentry@mydomain.com'
      system.url-prefix: 'https://sentry.mydomain.com'
      
      1. 搬运工-compose.yml
      2. enter image description here

        重新启动容器不会加载新配置。

        Related issue。但是,在评论(SENTRY_OPTIONS['mail.from']

        中更改配置后,我不知道该怎么做

3 个答案:

答案 0 :(得分:1)

您需要在容器内部显示已修改的配置文件。

如果它们内置于图像中(可能通过Dockerfile中的COPY或ADD),则重新启动容器无济于事,因为您是在旧图像上进行的。您应该重建图像,停止旧图像并启动新图像。相当烦人且容易出错的方式。

更好的方法是通过卷“挂载”您的文件。 Docker卷可以是单个文件,而不仅仅是目录。您可以在volumes中添加docker-compose.yml部分:

my_container:
  image: my_image
  volumes:
    sentry.conf.py:/full/path/to/sentry.conf.py/in/the/container
    config.yml:/similar/full/path/to/config.yml
  ports:
    ...
  command: ...

您可能已经为此特定容器定义了一些卷(例如,保存持久数据),然后您只需为配置文件添加卷映射。

希望这会有所帮助。新年里一切顺利!

答案 1 :(得分:0)

如果配置文件存储为docker configs,那么我发现本指南可以工作...

https://medium.com/@lucjuggery/about-using-docker-config-e967d4a74b83

  • 基本上将更新添加为新配置
  • tell服务删除旧配置,然后将新配置添加为要使用的配置。服务将重新启动
  • 现在您可以删除旧的docker配置

这不是很好,如果您想使用旧的配置标识符来命名新的配置,则必须再次重复!

Arrggghhh ....

答案 2 :(得分:0)

这是编辑现有docker容器配置的方法:

  1. 停止容器:

    docker stop <container name>

  2. 编辑配置:

    docker run -it -v /var/lib/docker:/var/lib/docker alpine vi $(docker inspect --format='/var/lib/docker/containers/{{.Id}}/config.v2.json' <container name>)

  3. 重新启动docker