docker export dir是什么意思

我正在按照这个教程在Docker中运行mssql 。首先用户拉图像

docker pull microsoft / mssql-server-linux

第二他在下面做

导出DIR = / var / lib / mssql
sudo mkdir $ DIR

最后他跑了

docker运行\
-d \
– 名称mssql \
-e'ACCEPT_EULA = Y'\
-e'SA_PASSWORD ='\
-p 1433:1433 \
-v $ DIR:/ var / opt / mssql \
微软/ MSSQL服务器Linux的

作者解释如下第二步

在主机上创build一个目录,该目录将存储来自容器的数据,并将值保存在环境variables中以方便使用:

问:
作者是什么意思,如果我们不创build目录,会发生什么?

我尝试search下面的不同术语

  • docker容器默认path
  • docker文件系统

但是无法理解。有人可以对此有所了解

所以这里是东西。 考虑下面的代码

 export DIR=/var/lib/mssql sudo mkdir $DIR 

我可以把它改写成

 sudo mkdir /var/lib/mssql 

但我也必须改变我的运行命令

 docker run \ -d \ --name mssql \ -e 'ACCEPT_EULA=Y' \ -e 'SA_PASSWORD=' \ -p 1433:1433 \ -v /var/lib/mysql:/var/opt/mssql \ microsoft/mssql-server-linux 

现在,如果你改变目录,那么你将不得不更新两个地方。 这就是为什么使用DIR。

如果你从docker运行下面删除

 -v /var/lib/mysql:/var/opt/mssql \ 

您的数据库的数据将被存储在容器内的/var/opt/mssql和数据将只存在,直到容器运行。 下一次重新启动容器时,数据库将为空白。

这就是为什么你把它映射到主机上的外部目录。 所以,当你重新启动容器或者启动一个新的容器时,这个目录内容将在容器中可用,并且数据库将会有你所做的所有更改