我正在尝试启动一个teampeak容器并将sqlite文件安装到主机。我使用全新安装的docker引擎和docker-compose。我尚未完成安装后的安装程序,即可以非root用户身份(docs)运行docker。这就是为什么当我将TS数据文件夹/opt/ts3server/sql/(docs)挂载到主机系统时遇到问题。 ./teamspeak/文件夹拥有根目录,但我也为每个人提供了r-w-x。
docker-compose.yaml:

version: '3'
services:
  teamspeak:
    user: root
    image: teamspeak
    restart: always
    ports:
      - 9987:9987/udp
      - 10011:10011
      - 30033:30033
    volumes:
      - ./teamspeak/:/opt/ts3server/sql/
    environment:
      TS3SERVER_LICENSE: accept
来自teampeak的错误日志:

当我设置除/opt/ts3server/sql/之外的其他任何内容时,teampeak服务器将启动。
如何使已安装的卷对Teampeak可读可写?

最佳答案

我假设您要挂载TS3服务器的数据目录。您安装的卷(/opt/ts3server/sql/)用于存储sql脚本以创建数据库。



相反,您想将数据目录(/var/ts3server/)挂载到主机系统:

version: '3'
services:
  teamspeak:
    user: root
    image: teamspeak
    restart: always
    ports:
      - 9987:9987/udp
      - 10011:10011
      - 30033:30033
    volumes:
      - ./teamspeak/:/var/ts3server/
    environment:
      TS3SERVER_LICENSE: accept

08-28 16:29