如何通过 docker CLI 将主机目录绑定到 docker 容器?
How to bind a host directory to docker container via docker CLI?
我正在尝试将主机目录绑定到 mssql docker 容器并具有以下 [bash] 脚本:
#!/bin/sh
IMPORTDIR=$(cd $(dirname [=12=]); pwd)
DATADIR=${DATADIR:-/tmp/db/}
set -xe
docker run --detach \
-e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=Passw0rd" -e "MSSQL_PID=Express" \
-v ${DATADIR}:/mnt/db \
-v ${IMPORTDIR}:/mnt/importing \
-p 127.0.0.1:1433:1433 \
--name mssql-db \
mcr.microsoft.com/mssql/server:latest
sleep 30
docker exec mssql-db /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P Passw0rd -Q "
RESTORE FILELISTONLY FROM DISK = '/mnt/db/mssql_db.bak'"
为此,我在 运行 脚本时收到以下错误消息:
RESTORE FILELISTONLY FROM DISK = '\''/mnt/db/mssql_db.bak'\'''
Msg 3201, Level 16, State 2, Server cd17fd41ce82, Line 2
Cannot open backup device '/mnt/db/mssql_db.bak'. Operating system error 2(The system cannot find the file specified.).
Msg 3013, Level 16, State 1, Server cd17fd41ce82, Line 2
RESTORE FILELIST is terminating abnormally.
当我登录到容器时,我发现主机目录中的文件确实不存在于容器的目录中。
以下是我的设置信息:
操作系统: Mac Os 10.13.6
Docker 版本:
文件权限(在主机上): -rw-r--r--@
我解决了这个问题,因为通过将 /tmp
的真实路径添加到 docker 中的文件共享资源路径。
在我的 OS 版本中(无法评论更高版本),/tmp
是指向其真实路径 /private/tmp
的符号链接,一旦我将其添加到 FILE SHARING 资源,成功了。
我最近刚刚升级到 docker,因为这不是我以前在升级前遇到的问题
我正在尝试将主机目录绑定到 mssql docker 容器并具有以下 [bash] 脚本:
#!/bin/sh
IMPORTDIR=$(cd $(dirname [=12=]); pwd)
DATADIR=${DATADIR:-/tmp/db/}
set -xe
docker run --detach \
-e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=Passw0rd" -e "MSSQL_PID=Express" \
-v ${DATADIR}:/mnt/db \
-v ${IMPORTDIR}:/mnt/importing \
-p 127.0.0.1:1433:1433 \
--name mssql-db \
mcr.microsoft.com/mssql/server:latest
sleep 30
docker exec mssql-db /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P Passw0rd -Q "
RESTORE FILELISTONLY FROM DISK = '/mnt/db/mssql_db.bak'"
为此,我在 运行 脚本时收到以下错误消息:
RESTORE FILELISTONLY FROM DISK = '\''/mnt/db/mssql_db.bak'\'''
Msg 3201, Level 16, State 2, Server cd17fd41ce82, Line 2
Cannot open backup device '/mnt/db/mssql_db.bak'. Operating system error 2(The system cannot find the file specified.).
Msg 3013, Level 16, State 1, Server cd17fd41ce82, Line 2
RESTORE FILELIST is terminating abnormally.
当我登录到容器时,我发现主机目录中的文件确实不存在于容器的目录中。
以下是我的设置信息:
操作系统: Mac Os 10.13.6
Docker 版本:
文件权限(在主机上): -rw-r--r--@
我解决了这个问题,因为通过将 /tmp
的真实路径添加到 docker 中的文件共享资源路径。
在我的 OS 版本中(无法评论更高版本),/tmp
是指向其真实路径 /private/tmp
的符号链接,一旦我将其添加到 FILE SHARING 资源,成功了。
我最近刚刚升级到 docker,因为这不是我以前在升级前遇到的问题