docker本地目录挂载

小命令

1、查看容器详情

docker inspect 容器名称

还是以nginx为例,上篇文章我们制作了nginx静态目录的数据卷,此时查看nginx容器时会展示出来(docker inspect nginx 展示信息太多,这里只截图数据卷挂载信息):

解释:
Source:宿主机数据卷位置。
Destination:已挂载的容器目录
Name:数据卷名称

2、宿主机目录与mysql容器中的数据目录、配置文件、初始化脚本的挂载

下边命令只是把默认数据卷名改成了本地目录即可完成自定义目录和容器目录的挂载。

java 复制代码
// 时机:在创建容器的时候去挂载制作
docker run -d --name 容器自定义名称 -p 外网端口:容器端口 -v 本地目录:容器内要挂载的目录 镜像名称

注意:
-v 本地目录写法: 前边必须以 / 或 ./ 开头。
-v mysql:/var/lib/mysql 会被是识别为一个数据卷叫 mysql;

-v ./mysql:/var/lib/mysql 会被是识别为当前目录下的mysql目录;

3、以mysql为例,实现:基于宿主机目录实现与mysql容器数据目录、配置文件目录、初始化脚本的挂载

宿主机的挂载目录在:/usr/mysql;

数据目录:/usr/mysql/data

配置文件目录:/usr/mysql/conf

初始化挂脚本目录:/usr/mysql/init

(1)在/usr目录下,创建上边四个目录

(2)创建、运行mysql容器,并实现挂载

解释:
-e :环境变量配置
TZ=Asia/Shanghai 设置时区
-v /usr/mysql/data:/var/lib/mysql 冒号右侧是对应mysql容器的数据目录,这个目录可以在docker hub上搜索mysql,在上边有记载mysql的一些文件目录,其他目录同理。

最后的mysql是镜像名称,这里要注重说下如果不带版本号,运行的是最新版本的mysql,本地没有最新的mysql,它会远程下载。。。如果你想运行你本机上的mysql镜像,一定要带上版本号!!!比如本机mysql镜像版本号为5.7,可以 mysql:5.7

java 复制代码
docker run -d \
--name mysql \
-p 3307:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123 \
-v /usr/mysql/data:/var/lib/mysql \
-v /usr/mysql/init:/docker-entrypoint-initdb.d \
-v /usr/mysql/conf:/etc/mysql/conf.d \
mysql

(3)查看mysql容器是否运行
(4)查看是否挂载成功,到/usr/mysql/data 查看数据已经同步

(5)物理机链接虚拟机上的mysql容器服务

相关推荐
舞动CPU4 小时前
linux c/c++最高效的计时方法
linux·运维·服务器
皮锤打乌龟5 小时前
(干货)Jenkins使用kubernetes插件连接k8s的认证方式
运维·kubernetes·jenkins
钰@5 小时前
小程序开发者工具的network选项卡中有某域名的接口请求,但是在charles中抓不到该接口
运维·服务器·小程序
wanhengwangluo5 小时前
云服务器和物理服务器的区别有哪些?
运维·服务器
南猿北者6 小时前
docker Network(网络)
网络·docker·容器
秦jh_6 小时前
【Linux】多线程(概念,控制)
linux·运维·前端
yaosheng_VALVE6 小时前
稀硫酸介质中 V 型球阀的材质选择与选型要点-耀圣
运维·spring cloud·自动化·intellij-idea·材质·1024程序员节
sam-1237 小时前
k8s上部署redis高可用集群
redis·docker·k8s
看山还是山,看水还是。7 小时前
Redis 配置
运维·数据库·redis·安全·缓存·测试覆盖率
扣得君7 小时前
C++20 Coroutine Echo Server
运维·服务器·c++20