本文主要是介绍Docker笔记:数据卷挂载的三种方式及物理机与容器内的环境变量的传递,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
容器数据挂载到物理机上的三种方式
1 ) 实名(指定路径)挂载数据卷
docker run -v 物理机目录:容器内目录 镜像id
- 示例
docker run -it -d --name mynginx_p_v -p 82:80 -v /root/www:/usr/share/nginx/html nginx
- 此时访问 会报 403 forbidden
- 因为 物理机上的 root/www 中是没有东西的,所以403
- touch root/www/index.html 并写一些东西进去
- 再次访问就行了
- 查看容器内信息:
docker inspect 容器Id | grep www
- 这种用法的最多的,清晰方便的管理
2 )匿名(自动分配)挂载数据卷
docker run -v 容器内目录 镜像ID
docker volume ls
可以看到 数据卷的列表docker inspect 容器ID | grep volume
可查看到当前数据卷在哪个目录中- 这种在具体项目中,也可以使用,也就是对存储位置要求不严格
3 )具名挂载数据卷
docker run -v 卷名称:容器内目录 镜像ID
- 这个和匿名挂载非常相似
- 这个卷名称是指定的
docker volume ls
- 可看到具名挂载的数据卷信息
docker inspect 容器ID | grep volume
- 可看到这个具名数据卷的具体信息
- 这种基于卷名称自主设定的数据卷挂载比匿名挂载的好处是名称上的简洁和好认
- 匿名挂载产生的是一长串的随机hash字符串
以上,三种方式挂载后,在物理机或容器内操作,都会互相同步数据
运行容器时传递的环境变量
docker run -e 变量名=变量值 镜像ID/镜像NAME
- 举例
docker run -it centos printenv
这时候打印的都是系统变量docker run -it -e TEST_ENV=sssss centos printenv
这样就多打印出了新加的这个变量docker run -it -e TEST_ENV=sssss -e NNN_ENV=dddd centos printenv
这样可以传递多个环境变量
- 习惯上,传递的变量名都是大写
这篇关于Docker笔记:数据卷挂载的三种方式及物理机与容器内的环境变量的传递的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!