目前,在一些特殊的容器中,例如 linuxserver/chrome(一个运行在 Docker 容器中的浏览器,https://docs.linuxserver.io/images/docker-chrome),需要附加一些特殊的服务参数来规定容器可以使用的资源(https://docs.docker.com/reference/compose-file/services)。
例如这个 chrome 容器就必须使用--shm-size="1gb"服务参数,才能保证容器中的浏览器可以使用的共享内存充足来正常打开网页。
在这个场景下存在的问题是:
- 通过飞牛的 Docker 控制面板,是无法指定这种服务参数的。用户自己通过 docker compose 和 docker run 命令的方式,写入这些参数,手动创建并运行容器,虽然参数可以正常传递进容器,但是如果用户后期想通过飞牛 Docker 控制面板修改容器的一些配置,例如开机自动启动,应用配置后,这些手动添加的服务参数会被移除/忽略掉,导致容器丢失这些参数无法正常使用。
- 正如 1 所说,如果用户是通过 docker compose 或者 docker run 手动创建的容器,飞牛 Docker 引擎似乎会忽略“restart: unless-stopped”参数,容器无法被设置为自动启动,只能通过飞牛 Docker 控制面板重新编辑容器添加上开机自动启动的设置后,保存重新应用容器才能生效。
希望的解决方案是:
- 飞牛 Docker 控制面板 创建/编辑容器时应该支持额外添加一些其他参数。
- 如果因为 Docker 各种参数过多,飞牛团队不能第一时间在 Docker 控制面板额外添加这些参数的可视化编辑,至少在通过控制面板编辑容器时,通过一些手段(例如 docker inspect)查看当前容器已有的参数,这些参数无论是否能够被现阶段的控制面板识别出具体意义,保存编辑时不应该被忽略掉。