Docker(3)—容器数据卷

Docker(3)—容器数据卷

Docker容器中产生的数据同步到本地。将我们容器内的目录挂在到Linux上面。可以实现容器数据的持久化和同步操作。

方式一:使用命令 -v

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

docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql01 mysql:5.7

# 匿名挂载
-v 容器内路径

# 具名挂载
-v 卷名:容器内路径

# 指定路径挂载
-v /服务器路径:容器内路径

# 所有docker容器内的数据卷,没有指定目录的情况下默认放在 /var/lib/docker/volumes/xxx/_data 下

方式二:DockerFile docker build

  1. 创建docker-volume目录
  2. 创建dockerfile01文件,并编辑
FROM centos

VOLUME ["volume01","volume02"]

CMD echo "-----end-----"

CMD /bin/bash

  1. 执行docker build命令
[root@yinrz docker-volume]# docker build -f dockerfile01 -t yinrz_centos .
Sending build context to Docker daemon  2.048kB
Step 1/4 : FROM centos
 ---> 831691599b88
Step 2/4 : VOLUME ["volume01","volume02"]
 ---> Running in 5f4f9dc49211
Removing intermediate container 5f4f9dc49211
 ---> 62dd49636edb
Step 3/4 : CMD echo "-----end-----"
 ---> Running in 7110d0cc8a0a
Removing intermediate container 7110d0cc8a0a
 ---> 8bb200283fb0
Step 4/4 : CMD /bin/bash
 ---> Running in 2cfffc6415e1
Removing intermediate container 2cfffc6415e1
 ---> 6a58ed96e546
Successfully built 6a58ed96e546
Successfully tagged yinrz_centos:latest

  1. docker run 启动容器
  2. docker inspect 查看启动的容器,成功挂载

数据卷容器

容器间也可以数据共享。--volumes-from

# 多个mysql实现数据共享
docker run -d -p 3310:3306 -v /etc/mysql/conf.d -v /var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -name mysql01 mysql:5.7

docker run -d -p 3310:3306  -e MYSQL_ROOT_PASSWORD=123456 -name mysql02 --volumes-from mysql01 mysql:5.7
posted @ 2020-08-13 03:04  Baby丿太依赖  阅读(105)  评论(0)    收藏  举报