Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
docker导出目录是什么意思_Docker - Fatal编程技术网

docker导出目录是什么意思

docker导出目录是什么意思,docker,Docker,我遵循这一点。首先,用户提取图像 docker pull microsoft/mssql服务器linux 第二,他在下面做 导出目录=/var/lib/mssql sudo mkdir$DIR 最后他跑了 docker run\ -d\ --名称mssql\ -e'接受\u EULA=Y'\ -e'SA_PASSWORD='\ -1433:1433\ -v$DIR:/var/opt/mssql\ microsoft/mssql服务器linux 作者解释第二步如下 在主机上创建一个目录,用于存储容

我遵循这一点。首先,用户提取图像

docker pull microsoft/mssql服务器linux

第二,他在下面做

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

最后他跑了

docker run\
-d\
--名称mssql\
-e'接受\u EULA=Y'\
-e'SA_PASSWORD='\
-1433:1433\
-v$DIR:/var/opt/mssql\
microsoft/mssql服务器linux

作者解释第二步如下

在主机上创建一个目录,用于存储容器中的数据,并将值保存在环境变量中,以方便使用:

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

我试着搜索不同的术语,如下所示

  • docker容器默认路径
  • docker文件系统

但我无法理解。有人能解释一下吗。考虑下面的代码

export DIR=/var/lib/mssql
sudo mkdir $DIR
我可以把它改写成

sudo mkdir /var/lib/mssql
但我还必须将RUN命令更改为

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 run中删除以下内容

-v /var/lib/mysql:/var/opt/mssql \
数据库的数据将存储在容器中的
/var/opt/mssql
,并且只有在容器运行之前,数据才会存在。下次重新启动容器时,DB将为空


这就是为什么要将它映射到主机上的外部目录。因此,当您重新启动容器或启动一个新容器时,该目录内容将在容器内可用,DB将拥有您所做的所有更改

DIR
只是一个shell变量,您还可以每次拼写目录名称。很容易尝试当目录不存在时发生的事情…很高兴能提供帮助。如果你觉得这就是你想要的答案,请接受这个帖子,因为答案是肯定会接受的,让我们看看其他人是否能参与进来