【Docker】第五章 管理应用程序数据

5.1  将Docker主机数据挂载到容器

问题:容器删除后,容器数据会丢失,怎么保证容器删除后数据不丢失呢?

        Docker提供三种不同的方式将数据从宿主机挂载到容器中:volumes,bind mounts和tmpfs。

  • volumes:Docker管理宿主机文件系统的一部分(/var/lib/docker/volumes)(常用)
  • bind mounts:可以存储在宿主机系统的任意位置(常用)
  • tmpfs:挂载存储在宿主机系统的内存中,而不会写入宿主机的文件系统

 

5.2 - A: volumes

5.2.1  创建卷:

# docker volume create nginx-vol
# docker volume ls
# docker volume inspect nginx-vol

5.2.2  使用卷(创建一个容器):

  • --mount  (推荐)
  • -v      (不推荐,不通用,且只支持数据卷)                
# docker run -d -it --name=nginx-test --mount src=nginx-vol,dst=/usr/share/nginx/html nginx
# docker run -d -it --name=nginx-test -v nginx-vol:/usr/share/nginx/html nginx

数据卷公用

匿名卷与命名卷

5.2.3  清理:

# docker container stop nginx-test
# docker container rm nginx-test
# docker volume rm nginx-vol

注意:

  • 如果没有指定卷,自动创建。
  • 建议使用—mount,更通用。

官方文档:

https://docs.docker.com/engine/admin/volumes/volumes/#start-a-container-with-a-volume

5.3 - B: bind mounts

作用:绑定宿主机已存在的目录到容器

用卷创建一个容器:

# docker run -d -it --name=nginx-test --mount type=bind,src=/app/wwwroot,dst=/usr/share/nginx/html nginx

# docker run -d -it --name=nginx-test -v /app/wwwroot:/usr/share/nginx/html nginx

验证绑定:

# docker inspect nginx-test
  • 清理:
# docker container stop nginx-test

# docker container rm nginx-test

注意:

  • 如果源文件/目录没有存在,不会自动创建,会抛出一个错误。
  • 如果挂载目标在容器中非空目录,则该目录现有内容将被隐藏。

官方文档:

https://docs.docker.com/engine/admin/volumes/bind-mounts/#start-a-container-with-a-bind-mount

5.1 - C: tmpfs

5.2 搭建LNMP网站平台

5.2.1、自定义网络

docker network create lnmp

5.2.2、创建Mysql数据库容器

docker run -itd \ --name lnmp_mysql \ --net lnmp \ -p 3306:3306 \ --mount src=mysql-vol,dst=/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ mysql:5.7 --character-set-server=utf8

5.2.3、创建所需数据库

docker exec lnmp_mysql sh \ -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD" -e"create database wp"'

5.2.4、创建PHP环境容器

docker run -itd \ --name lnmp_web \ --net lnmp \ -p 88:80 \ --mount type=bind,src=/app/wwwroot,dst=/var/www/html richarvey/nginx-php-fpm

5.2.5、以wordpress博客为例测试

wget https://cn.wordpress.org/wordpress-4.7.4-zh_CN.tar.gz

tar zxf wordpress-4.7.4-zh_CN.tar.gz -C /app/wwwroot

# 浏览器测试访问

http://IP:88/wordpress

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ladymorgana

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值