Docker数据卷与DockerFile教学
发布时间:2022-06-13 05:45:09 所属栏目:云计算 来源:互联网
导读:其实也不难理解和我们上一篇讲的端口映射很相似,因为容器与宿主机之间都是相互隔离的。而端口映射则是在两个互相隔离体之间构建通道,使其可以进行通讯共享。数据卷也是这种意思,但是数据卷不会因为容器的死亡而消失,只要还有一个容器或宿主机与其进行绑
其实也不难理解和我们上一篇讲的端口映射很相似,因为容器与宿主机之间都是相互隔离的。而端口映射则是在两个互相隔离体之间构建通道,使其可以进行通讯共享。数据卷也是这种意思,但是数据卷不会因为容器的死亡而消失,只要还有一个容器或宿主机与其进行绑定,那么数据卷的内容就不会丢失。 数据卷 一、直接命令挂载在宿主机目录 1、测试nginx 复制 docker run -v 主机目录:容器内目录 docker run -d -v 主机目录地址:/usr/share/nginx/html -p 8080:80 --name nginx-music-volume nginx 当我们的两个目录进行挂载之后,就相当于共用一个目录,不管哪边发送改变目录的内容都会发生改变,这样的话我们只需在宿主机这边的目录进行操作,那么容器内的该目录也会发生相应的变化。就像我上篇文章所进行的cp操作就可以省去,并且当我需要更新版本时也只需在宿主机这边进行操作即可。下面我以nginx进行测试,挂载上自己自定义的网页。 这里可以看到确实是挂载成功了。可以看到当我们使用-v时很容易就将自己的本地目录网页放在了容器里,到这里其实就已经可以说明现在这两个目录实际上已经共用同一个目录了,并且就算我将这个容器删除,里面的内容也依旧是保留的。 以后修改或者发布新的版本就只需在服务器进行修改就行容器会自动同步,并且只有容器没删不管是停止状态还是运行状态都会自动同步。 2、 测试mysql 我这用mysql:5.7版本演示,首先docker pull mysql:5.7 ,当然这里我先去官网看了一下。我这里还是建议大家直接先去官方进行查询学习。 但是为了挂载目录方便管理,这里我们需要对该命令进行修改。 复制 docker run -d -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -p 3310:3306 --name mysql01 mysql:5.7 相信看完上一篇文章的你对于这个命令应该不难理解了。 -d 后台 -p 端口映射 -v 卷挂载 -e 环境配置 --name 命名 run -d -v Aasee:/usr/share/nginx/html -p 8080:80 --name nginx02 nginx(指定名称和容器内路径的为具名挂载) docker run -d -v 主机路径:容器内路径 -p 8080:80 --name nginx-volume nginx(直接挂载在宿主机指定目录) 三、数据卷容器 正如容器与主机之间能够进行通讯,容器与容器之间也可以进行通信,而这个父容器就为数据卷容器,因为我们已经知道了容器与宿主机可以通过数据卷进行文件共享,所以自然容器与容器之间也是同样可以通过数据卷共享。 (编辑:广西网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐