Как связать-подключить каталог данных в контейнере Windows - PullRequest
0 голосов
/ 26 июня 2019

Я развертываю сервер MySQL в контейнере Windows.При привязывании директории данных mysql я сталкиваюсь с некоторой ошибкой.

информация о докере выглядит следующим образом:

    Containers: 2
     Running: 0
     Paused: 0
     Stopped: 2
    Images: 15
    Server Version: 18.09.2
    Storage Driver: lcow (linux) windowsfilter (windows)
     LCOW:
     Windows:
    Logging Driver: json-file
    Plugins:
     Volume: local
     Network: ics l2bridge l2tunnel nat null overlay transparent
     Log: awslogs etwlogs fluentd gelf json-file local logentries splunk syslog
    Swarm: inactive
    Default Isolation: hyperv
    Kernel Version: 10.0 17134 (17134.1.amd64fre.rs4_release.180410-1804)
    Operating System: Windows 10 Pro Version 1803 (OS Build 17134.472)
    OSType: windows
    Architecture: x86_64
    CPUs: 4
    Total Memory: 7.927GiB
    Name: 1512010NB01
    ID: CX5Q:ZLPK:H23T:KKXB:7P5I:7JY3:R5RO:CKFL:3ZRT:KNZ5:AJGW:V35W
    Docker Root Dir: C:\ProgramData\Docker
    Debug Mode (client): false
    Debug Mode (server): true
     File Descriptors: -1
     Goroutines: 30
     System Time: 2019-06-26T11:11:55.1161658+08:00
     EventsListeners: 1
    Registry: https://index.docker.io/v1/
    Labels:
    Experimental: true
    Insecure Registries:
     127.0.0.0/8
    Live Restore Enabled: false
    Product License: Community Engine

версия докера выглядит следующим образом:

    Client: Docker Engine - Community
     Version:           18.09.2
     API version:       1.39
     Go version:        go1.10.8
     Git commit:        6247962
     Built:             Sun Feb 10 04:12:31 2019
     OS/Arch:           windows/amd64
     Experimental:      false

    Server: Docker Engine - Community
     Engine:
      Version:          18.09.2
      API version:      1.39 (minimum version 1.24)
      Go version:       go1.10.6
      Git commit:       6247962
      Built:            Sun Feb 10 04:28:48 2019
      OS/Arch:          windows/amd64
      Experimental:     true

ниже приведен мой файл Docker

FROM microsoft/windowsservercore:1803

LABEL Author="aa@bb.cc.dd" MySQLVersion="8.0.13"

RUN powershell -Command \
    Invoke-WebRequest -UseBasicParsing -Uri "https://download.microsoft.com/download/6/A/A/6AA4EDFF-645B-48C5-81CC-ED5963AEAD48/vc_redist.x64.exe" -OutFile "C:\vc_redist.x64.exe"; \
    [Net.ServicePointManager]::SecurityProtocol='tls12,tls11,tls'; \
    Invoke-WebRequest -UseBasicParsing -Uri "https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.13-winx64.zip" -OutFile "C:\MySQL.zip"; \
    && vc_redist.x64.exe  /install /passive /norestart /quiet \
    && powershell -command \
    Expand-Archive -Path c:\mysql.zip -DestinationPath C:\ ; \
    ren C:\mysql-8.0.13-winx64 C:\MySQL ; \
    Remove-Item c:\MySQL.zip -Force; \
    Remove-Item c:\vc_redist.x64.exe; \
    && powershell -f InitMySql.ps1 \
    && powershell -command Remove-Item c:\InitMySql.ps1 -Force; \
    && setx PATH /M %PATH%;C:\MySQL\bin

EXPOSE 3306/tcp
ENTRYPOINT ["powershell.exe", "C:\\MySQL\\bin\\mysqld.exe", "--console"]

После создания образа и выполнения

Docker run -it --name testmysql --mount type = bind, src = c: \резервная копия, dst = C: \ MySQL \ data xxxx / mysqlforwindows: последняя

некоторые ошибки происходят следующим образом:

[система] [MY-010116] [сервер]C: \ MySQL \ bin \ mysqld.exe (mysqld 8.0.13), начиная с процесса 1324 [ОШИБКА] [MY-011011] [Сервер] Не удалось найти действительный каталог данных.[ОШИБКА] [MY-010020] Ошибка инициализации словаря данных [Сервер].[ОШИБКА] [MY-010119] [Сервер] Прерывает [Система] [MY-010910] [Сервер] C: \ MySQL \ bin \ mysqld.exe: Завершение работы завершено (mysqld 8.0.13) MySQL Community Server - GPL.

В документе mysql есть некоторые предложения, ошибка может быть вызвана файлом сокета, но я не знаю, как это исправить.

https://dev.mysql.com/doc/mysql-installation-excerpt/8.0/en/deploy-mysql-nonlinux-docker.html

какчтобы решить проблему, у кого-нибудь есть предложения?спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...