在使用 Docker 进行应用程序开发和部署时,有时需要在容器内部与宿主机器进行文件交互。这篇文章将介绍 Docker 容器内部与宿主机器的文件交互方式,包括数据卷和绑定挂载两种方式,并提供示例代码。
数据卷
数据卷是将宿主机器的目录或文件挂载到容器内部的目录,从而实现容器内部与宿主机器的文件交互。数据卷可以在容器创建时指定,也可以在容器运行时动态添加。
创建容器时指定数据卷
使用 docker run
命令创建容器时,可以使用 -v
参数指定数据卷。例如,将宿主机器的 /home/user/app
目录挂载到容器内部的 /app
目录:
------ --- -- ------------------- -------
这样,在容器内部就可以访问宿主机器的 /home/user/app
目录,而且对该目录的修改也会同步到宿主机器上。
运行中动态添加数据卷
使用 docker volume create
命令创建一个数据卷,例如:
------ ------ ------ --------
然后,使用 docker run
命令启动容器时,使用 --mount
参数将数据卷挂载到容器内部的目录。例如,将 myvolume
数据卷挂载到容器内部的 /data
目录:
------ --- ------- ---------------------------- -------
这样,在容器内部就可以访问 myvolume
数据卷,而且对该数据卷的修改也会同步到宿主机器上。
示例代码
下面是一个使用数据卷的示例代码,创建一个名为 mynginx
的 Nginx 容器,并将宿主机器的 /home/user/nginx
目录挂载到容器内部的 /etc/nginx/conf.d
目录:
------ --- -- ------ ------- -- ----- - -- ---------------------------------- ------------
绑定挂载
绑定挂载是将宿主机器的目录或文件直接挂载到容器内部的目录,从而实现容器内部与宿主机器的文件交互。绑定挂载只能在容器创建时指定。
创建容器时指定绑定挂载
使用 docker run
命令创建容器时,可以使用 -v
参数指定绑定挂载。例如,将宿主机器的 /home/user/app
目录绑定挂载到容器内部的 /app
目录:
------ --- -- ---------------------- -------
这样,在容器内部就可以访问宿主机器的 /home/user/app
目录,但对该目录的修改不会同步到宿主机器上。
示例代码
下面是一个使用绑定挂载的示例代码,创建一个名为 mynginx
的 Nginx 容器,并将宿主机器的 /home/user/nginx
目录绑定挂载到容器内部的 /etc/nginx/conf.d
目录:
------ --- -- ------ ------- -- ----- - -- ------------------------------------- ------------
总结
本文介绍了 Docker 容器内部与宿主机器的文件交互方式,包括数据卷和绑定挂载两种方式。数据卷可以在容器创建时指定,也可以在容器运行时动态添加;而绑定挂载只能在容器创建时指定。在实际应用中,需要根据具体需求选择合适的方式进行文件交互。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6509d76395b1f8cacd464f5d