在docker中、image是只读层。container是在image层面上、增加了一个可读写的层面。

数据持久化的方案

基于本地文件系统的Volume

可以在执行Docker create或Docker run时,通过-v参数将主机的目录作为容器的数据卷。这部分功能便是基于本地文件系统的volume管理。

基于plugin的volume

支持第三方的存储方案,比如nas,aws

volume的类型

受管理的data volume,由docker后台自动创建。

绑定挂在的volume,具体挂在为位置由用户指定。

Data volume

在docker hub上的mysql官方源的Dockerfile中有指定volume关键字

图

添加国内镜像源加速

$ sudo vi /etc/docker/daemon.json
# 加入以下内容
{
    "registry-mirrors": ["https://registry.docker-cn.com"]
}

sudo systemctl restart docker

下载mysql并且启动它

docker run -d –name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD mysql

发现并没有启动它 、docker ps

用docker logs mysql1查看原因

图

删除容器和volume然后重建一个

图

docker run -d --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql

docker volume查看 启动的volume name

docker volume inspect b5ec010ee2fe5bfdc0f618dcf68dc4c6f4fbe6e51ed8d5cb9e39f1b0f9fcb72d

图

这个volume的名字不怎么友好、如果另起一个cantainer的话指定volume的名字也不太好。

重新指定volume参数来指定volume的值

#
docker run -d  -v mysql:/var/lib/mysql --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true my
sql
#

图

进入创建一个数据库

图

推出强制删除mysql1然后新建一个mysql2

强制删除mysql1

docker rm -f mysql1

图

`docker run -d -v mysql:/var/lib/mysql --name mysql2 -e MYSQL_ALLOW_EMPTY_PASSWORD=true my
sql`

图

-v mysql:/var/lib/mysql 这个方式相当于启别名。

而且在dockerfile里定义了 volume关键字。

Bind Mouting

语法 docker run -v /home/aaa:/root/aaa 对应本地主机和容器目录进行同步。目录映射。

新建一个Dockerfile

# this same shows how we can extend/change an existing official image from Docker Hub

FROM nginx:latest
# highly recommend you always pin versions for anything beyond dev/learn

WORKDIR /usr/share/nginx/html
# change working directory to root of nginx webhost
# using WORKDIR is prefered to using 'RUN cd /some/path'

COPY index.html index.html

# I don't have to specify EXPOSE or CMD because they're in my FROM
~                                                                 

目录

图

build 一个image

docker build -t a364482611/nginx .

启动并且映射到本地

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

$(pwd)代表当前目录

图

两个之间是同步的。

Last modification:January 31, 2020
如果觉得我的文章对你有用,请随意赞赏