docker-compose在卷目录中未保存任何数据。
docker-compose在卷目录中未保存任何数据。
Docker不会保存到卷中。
我尝试了不同的组合,但它只是不会保存到卷中。其中任何一个都不会保存到卷中...
我用以下命令运行它们:
$ sudo docker-compose up -d --remove-orphans $ sudo docker-compose start
如果我停止并启动Docker容器,那么数据就会再次出现(这意味着Docker会将数据保存在某个地方...只是不是我指定的卷中)
我的主机运行的是Ubuntu 20.04
该怎么办?
// docker-compose.yml version: "3.7" services: sqlserver: image: mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04 ports: - "1433:1433" - "5022:5022" volumes: - /media/m/DataLinux/Code/Docker/db-playground/sqldata:/var/opt/sqlserver/data # - /media/m/DataLinux/Code/Docker/db-playground/sqlbackup:/var/opt/mssql/backups # - /media/m/DataLinux/Code/Docker/db-playground/sqlserver:/var/opt/sqlserver # - /media/m/DataLinux/Code/Docker/db-playground/mssql:/var/opt/mssql environment: USERID: sa SA_PASSWORD: Dev1234! ACCEPT_EULA: Y mongo: image: amd64/mongo:4.4.3-bionic restart: always volumes: - /media/m/DataLinux/Code/Docker/db-playground/mongo-data:/var/data ports: - "27017:27017" environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: secret postgres: image: supabase/postgres:0.14.0 ports: - "5432:5432" environment: POSTGRES_PASSWORD: postgres # user: postgres # volumes: # sqldata: # mongo-data: # sqlsystem: # sqllog: # sqlbackup: # sqlsecrets:
问题的出现原因:
问题的原因是在docker-compose.yml文件中,指定了一个绝对路径作为存储数据的卷,但是在该路径下没有保存任何数据。同时,在docker-compose.yml文件的末尾定义了一个volumes部分,这是Docker管理的卷,存储在/var/lib/docker/volumes目录下。
解决方法:
1.首先,确保容器已经成功启动。可以检查指定的存储路径是否存在数据。
2.如果启动过程中出现任何问题,会立即显示错误信息,可以查看错误日志来了解具体情况。
3.不要手动操作Docker卷,而是使用Docker命令行工具进行操作。可以使用以下命令来管理Docker卷:
docker volume create
docker volume delete
...
这样就能够正确地使用Docker卷来保存数据了。
问题:docker-compose中的volumes目录中没有保存任何数据的原因及解决方法。
在使用docker-compose时,有时候会遇到volumes目录中没有保存任何数据的问题。这个问题的出现原因可能是由于用户权限设置不正确导致的。
解决方法如下:
对于SQL Server容器,可以通过添加"user: root"来解决这个问题。具体操作如下:
1. 打开docker-compose.yml文件。
2. 在sqlserver服务下添加"user: root",如下所示:
version: "3.7" services: sqlserver: image: mcr.microsoft.com/mssql/server:2019-latest container_name: sqlserver user: root ##################### <<<<<<<<<<<< IMPORTANT!!!!! ############ ports: - "1433:1433" environment: SA_PASSWORD: Dev1234! ACCEPT_EULA: Y volumes: - ./volumes/data2:/var/opt/mssql/data
3. 保存文件并重新运行docker-compose命令。
通过以上步骤,我们可以解决docker-compose中volumes目录没有保存任何数据的问题。