Docker学习笔记9

容器使用Docker Host做数据存储:

容器来做数据的存储。清除了容器,保存在容器的数据就会丢失,所以容器不适合做数据的持久化。

-v --volume list:  Bind Mount a volume 绑定挂载一个卷。

把数据保存到真实机上,就能做到持久化。

第一步:在容器主机上创建用于存储目录:

mkdir /opt/cvolume

第二步:运行容器并挂载上述目录:

docker run -it -v /opt/cvolume:/data --name c102 centos:latest /bin/bash

1)-v 前面是容器主机的目录,后面是容器里的目录。

2)容器目录/data是在运行容器的时候自动创建的,不需要预先在镜像中创建该目录。

第三步:在/opt/cvolume目录中创建123.txt文件,那么使用docker attach c102命令进入到容器,然后在/data目录下检查,可以看到123.txt文件已经存在。

-v选项,把容器的文件保存到本地,把真实机的目录挂载到容器中。

案例:

运行在容器中的http服务,使用docker host的/web目录中的网页文件,并能够在docker host上进行修改后,立刻生效。

第一步:

在宿主机上创建/web目录,并添加网页文件。

mkdir /web
echo "web" > /web/index.html

第二步:启动容器对/web目录进行挂载

docker run -it -p 8080:80 -v /web:/var/www/html centos:latest /bin/bash

# 在容器中
ls /var/www/html

第三步:启动http服务

yum install -y httpd

httpd -k start

第四步:验证:

# 在容器中
curl http://localhost

# 在容器主机中
curl http://localhost:8080

在工作中,解决MySQL数据目录没有正确映射到宿主机的问题。

备份数据:mysqldump

停止mysql原来的容器

docker stop mysql

备份数据(数据目录的拷贝)

docker cp

启动mysql的新容器

docker run

删除mysql旧容器(可选)

你可能感兴趣的:(Docker容器,docker)