docker volume持久化存储与数据分享

Posted soymilk2019

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker volume持久化存储与数据分享相关的知识,希望对你有一定的参考价值。

第一种

指定volume文件mysql存储,存储的位置为/var/lib/mysql

-v mysql:/var/lib/mysql 

 

第二种

同步文件,将容器中的skeleton文件夹的内容同步到宿主机的skeleton文件夹

-v /soymilk/docker/skeleton:/skeleton (-v $(pwd):/skeleton)

 

实例一

docker run -d --name mysql1 -v mysql:/var/lib/mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql   创建容器mysql1
(-e MYSQL_ALLOW_EMPTY_PASSWORD=true是为了不用创建root密码使用mysql)

docker ps 看下我们的容器

docker volume ls 看下我们volume

docker exec -it mysql1 /bin/bash 进入容器

mysql -u root

show databases;

create database docker1;

exit

exit 退出容器

docker rm -f mysql1 强制删除我们运行中的容器

docker run -d --name mysql2 -v mysql:/var/lib/mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql  创建容器mysql2,并且使用以前的volume

docker exec -it mysql2 /bin/bash 进入容器

mysql -u root

show databases;

有我们在容器mysql1里边创建的docker1

 

实例二

创建Dockerfile的文件夹,新建里边的两个文件Dockerfile、index.html

mkdir nginx

Dockerfile

FROM nginx:latest
WORKDIR /usr/share/nginx/html
COPY index.html index.html

index.html

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">

  <title>hello</title>

</head>

<body>
  <h1>Hello Docker! </h1>
</body>
</html>

build我们的image

docker build -t soymilk/nginx .

创建容器

docker run -d --name web -p 80:80 -v $(pwd):/usr/share/nginx/html soymilk/nginx

浏览器访问宿主机ip

修改宿主机的index.html

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">

  <title>hello</title>

</head>

<body>
  <h1>Hello! </h1>
</body>
</html>

 浏览器访问再次访问宿主机ip发现改变了

 

以上是关于docker volume持久化存储与数据分享的主要内容,如果未能解决你的问题,请参考以下文章

Docker存储

Docker 持久化存储, Data Volume

存储卷

k8s Volume

k8s之volumes持久化存储

Docker学习之volume