我开始了一个docker图像anapsix/webdis:
anapsix/webdis
sudo docker run -d -p 7379:7379 -e LOCAL_REDIS=true anapsix/webdis
并将etc/webdis.json更改为允许websocket,并使用
etc/webdis.json
sudo docker commit <container-id>
然而,当我使用新的映像启动一个容器时,它并不保留更改。是不是我做错了什么?谢谢!
isr3a4wc1#
在本例中,您的问题是anapsix/webdis映像有一个入口点脚本(/entrypoint.sh),它在容器启动时生成/etc/webdis.json。查看脚本,您可以在启动容器时通过设置WEBSOCKETS变量来设置websockets的值:
/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来生成自定义的图像(这给你一个更易管理的,可重复的创建容器图像的过程)。
docker commit
1条答案
按热度按时间isr3a4wc1#
在本例中,您的问题是
anapsix/webdis
映像有一个入口点脚本(/entrypoint.sh
),它在容器启动时生成/etc/webdis.json
。查看脚本,您可以在启动容器时通过设置
WEBSOCKETS
变量来设置websockets
的值:当我们像这样运行它时,生成的
/etc/webdis.json
看起来像:更广泛地说,使用
docker commit
几乎总是错误的;你应该使用一个Dockerfile来生成自定义的图像(这给你一个更易管理的,可重复的创建容器图像的过程)。