加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

MySQL Docker容器未安装

发布时间:2020-12-16 03:22:12 所属栏目:安全 来源:网络整理
导读:我已经使用docker-compose创建了mysql docker容器.我建立了容器并在mysql中创建了一些表.但是,当我重新启动计算机时,我在mysql中丢失了数据(表和数据).我正在使用容器中的本地文件夹作为卷.但我看到它没有安装在虚拟容器中. 我的操作系统是Windows 10 Pro.我

我已经使用docker-compose创建了mysql docker容器.我建立了容器并在mysql中创建了一些表.但是,当我重新启动计算机时,我在mysql中丢失了数据(表和数据).我正在使用容器中的本地文件夹作为卷.但我看到它没有安装在虚拟容器中.

我的操作系统是Windows 10 Pro.我试图重新启动Docker桌面和容器,但是并没有帮助.这是我正在运行的.yml:

version: '3.3'
services:
  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: 'db_name'
      MYSQL_USER: 'db_user'
      MYSQL_PASSWORD: 'db_pass'
      MYSQL_ROOT_PASSWORD: 'db_root_pass'
    ports:
      - '3308:3306'
    volumes:
      - ./mysql-log:/var/log/mysql
      - ./dbdata:/var/lib/mysql
    command: ['mysqld','--character-set-server=utf8mb4','--collation-server=utf8mb4_unicode_ci']

最佳答案
MySQL docker映像存在一些权限问题.因此,您可以使用具有no issues的docker卷的MariaDB来代替MySQL,

在您的docker-compose中,您正在从当前目录中安装dbdata,由于存在MySQL docker镜像的docker卷的某些权限问题,该目录将无法安装.
挂载到共享文件夹不起作用,而不是使用./dbdata尝试使用/ dbdata

甚至我也遇到了同样的问题,我将MySQL更改为MariaDB并将卷安装到/ dbdata,它对我有用.这是我的docker-compose.yml

version: '3'
services:
  mysql:
    image: mariadb
    container_name: mysql
    environment:
      MYSQL_DATABASE: 'movies'
      # So you don't have to use root,but you can if you like
      MYSQL_USER: 'user'
      # You can use whatever password you like
      MYSQL_PASSWORD: '123'
      # Password for root access
      MYSQL_ROOT_PASSWORD: '1234'
    ports:
    # <Port exposed> : < MySQL Port running inside container>
      - '3306:3306'
    expose:
      # Opens port 3306 on the container
      - '3306'
    # Where our data will be persisted
    volumes:
      - /dbdata :/var/lib/mysql

在您的情况下,您创建的数据库和表不会保留.
如果您有表的备份文件,则将该备份文件移动到虚拟机中的/ dbdata中,然后创建数据库并将该备份文件加载到数据库中

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读