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

时间:2022-01-21 23:50:53

第一种

指定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 : -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发现改变了