【docker】3.挂载

容器数据卷

·干什么用?

        如果数据都在容器中,那么我们容器删除,数据就会丢失!

        将数据持久化就不会丢失,这个技术就是一个数据共享的技术。

        docker容器中的数据,同步到本地,目录的挂载

        总结:容器的持久化和同步操作!容器间的数据共享!

·使用数据卷

        # 方式一:直接使用命令来挂载 -v

        docker run -it -v 主机目录:容器内端目录

·测试

#-v 挂载
PS C:\Users\41074\Desktop> docker run -it --name linux -v d:\log:/home centos /bin/bash

#启动后查看容器的情况,查看是否挂载成功
PS C:\Users\41074\Desktop> docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
aba58462eb6a   centos    "/bin/bash"   29 seconds ago   Up 29 seconds             linux
PS C:\Users\41074\Desktop> docker inspect linux

实战:安装MySQL


#获取镜像
PS C:\Users\41074\Desktop> docker pull mysql
Using default tag: latest

#运行容器,需要做数据挂载! 
#安装启动mysql,需要配置密码的,这点需要注意

#启动我们的
-d 后台运行
-p 端口映射
-v 卷挂载
-e 环境配置
--name 容器名字

#官方用例:
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
#启动mysql
PS C:\Users\41074\Desktop> docker run -d --name mysql -p 3310:3306 -v d:\log\mysql\conf:/etc/mysql/conf.d -v d:\log\mysql\data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql
d6e9cf4ae81d6d4720adc7e4b254c40b95a99391699c0834d8a2b07b6e0b26cf
PS C:\Users\41074\Desktop> docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                               NAMES
d6e9cf4ae81d   mysql     "docker-entrypoint.s…"   7 seconds ago   Up 6 seconds   33060/tcp, 0.0.0.0:3310->3306/tcp   mysql


#启动成功后,我们用sqlyog来连接测试一下
#sqlyog  连接到服务器3310端口,3310和容器内的3306映射过了

#在本地创建一个数据库,查看一下我们映射的路径是否ok

拓展:

#	通过 -v 容器内路径:ro rw 改变读写权限
ro: readonly 	#只读
rw: readwrite	#可读可写

# 一旦设置了容器权限,容器对我们挂载出来的内容就限定了!
docker run -d -p --name nginx01 -v juming-nginx:/etc/nginx:ro nginx
docker run -d -p --name nginx01 -v juming-nginx:/etc/nginx:rw nginx

# ro 只要看到ro就说明这个路径只能通过宿主机操作,容器内部是不能操作的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值