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
和数据将只存在,直到容器运行。 下一次重新启动容器时,数据库将为空白。
这就是为什么你把它映射到主机上的外部目录。 所以,当你重新启动容器或者启动一个新的容器时,这个目录内容将在容器中可用,并且数据库将会有你所做的所有更改