docker-compose在卷目录中未保存任何数据。

14 浏览
0 Comments

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:

0
0 Comments

问题的出现原因:

问题的原因是在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卷来保存数据了。

0
0 Comments

问题: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目录没有保存任何数据的问题。

0