Docker提交未保存更改(anapsix/webdis)

rta7y2nd  于 2023-01-29  发布在  Docker
关注(0)|答案(1)|浏览(117)

我开始了一个docker图像anapsix/webdis

sudo docker run -d -p 7379:7379 -e LOCAL_REDIS=true anapsix/webdis

并将etc/webdis.json更改为允许websocket,并使用

sudo docker commit <container-id>

然而,当我使用新的映像启动一个容器时,它并不保留更改。是不是我做错了什么?
谢谢!

isr3a4wc

isr3a4wc1#

在本例中,您的问题是anapsix/webdis映像有一个入口点脚本(/entrypoint.sh),它在容器启动时生成/etc/webdis.json
查看脚本,您可以在启动容器时通过设置WEBSOCKETS变量来设置websockets的值:

docker run -d -p 7379:7379 \
  -e LOCAL_REDIS=true \
  -e WEBSOCKETS=true \
  anapsix/webdis

当我们像这样运行它时,生成的/etc/webdis.json看起来像:

{
  "redis_host": "127.0.0.1",

  "redis_port": 6379,
  "redis_auth": null,

  "http_host": "0.0.0.0",
  "http_port": 7379,

  "threads": 5,
  "pool_size": 10,

  "daemonize": false,
  "websockets": true,

  "database": 0,

  "acl": [
    {
      "disabled": ["DEBUG", "FLUSHDB", "FLUSHALL"]
    },

    {
      "http_basic_auth": "user:password",
      "enabled":  ["DEBUG"]
    }
  ],

  "verbosity": 8,
  "logfile": "/dev/stdout"
}

更广泛地说,使用docker commit几乎总是错误的;你应该使用一个Dockerfile来生成自定义的图像(这给你一个更易管理的,可重复的创建容器图像的过程)。

相关问题