docker export dir是什么意思

时间:2017-08-11 04:15:25

标签: docker

我正在关注此tutorial to run mssql in a docker。首先,用户提取图片

  

docker pull microsoft / mssql-server-linux

他在下面做了

  

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

最后他跑了

  

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

作者解释第二步如下

  

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

问:
作者的意思是什么,以及如果我们不创建目录

会发生什么

我尝试搜索下面的不同字词

  • docker container默认路径
  • docker file system

但无法理解。有人可以说明这个

1 个答案:

答案 0 :(得分:1)

所以这就是事情。请考虑以下代码

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。

如果您从泊坞窗运行中删除

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

您的数据库的数据将存储在/var/opt/mssql的容器内,并且数据仅在容器运行之前存在。下次重新启动容器时,数据库将为空。

这就是您将其映射到主机上的外部目录的原因。因此,当您重新启动容器或启动新容器时,该容器内的目录内容将可用,并且数据库将具有您所做的所有更改