docker 的数据管理

docker 容器中数据主要有两种方式
  1. 数据卷( Data Volumes )

    数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机的目录往载到数据卷上,对数据卷的修改操作立刻可见,并且更新数据不会影响镜像,从而实现数据在宿主机与容器之间的迁移。数据卷的使用类似于 Linux 下对目录进行的 mount 操作。

  2. 数据卷容器(DataVolumes Containers)

    如果需要在容器之间共享一些数据,最简单的方法就是使用数据卷容器。数据卷容器是一个普通的容器,专门提供数据卷给其他容器挂载使用

docker 镜像结构的分层

镜像不是一个单一的文件,而是有多层构成。容器其实是在镜像的最上面加了一层读写层,在运行容器里做的任何文件改动,都会写到这个读写层如果删除了容器,也就删除了其最上面的读写层,文件改动也就丢失了。Docker使用存储驱动管理镜像每层内容及可读写层的容器层。

(1)dockerfile 中的每个指令都会创建一个新的镜像层

(2)镜像曾将被缓存和复用

(3)当 dockerfile 的指令修改了,复制的文件变化了或者构建镜像时指定的变量不同了,对应的镜像层缓存就会失效

(4)某一层的镜像缓存失效之后,它之后的镜像层缓存都会失效

(5)镜像层是不可变的,如果在某一层中添加一个文件,然后在下一层中删除它,则镜像中依然会包含该文件

docker 镜像的创建

创建镜像有三种方法,分别为基于已有镜像创建、基于本地模板创建以及基于Dockerfile创建

1、基于现有镜像创建

docker run 创建并且启动容器,再通过docker exec/cp 等容器操作指定修改容器内容 ,再去用 docker commit 提交成新的镜像

2、基于本地模板创建

从网上先下载现有的镜像模板,或使用 docker export 到处本地容器快照模板,再用 docker import 将我们的快照导入成本地镜像

3、基于dockerfile创建

Dockerfile结构大致分为四个部分:

基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。Dockerfile每行支持一条指令,每条指令可携带多个参数,支持使用以“#“号开头的注释

dockerfile 常用指令
  1. FROM 镜像

    指定新镜像所基于的基础镜像,第一个指令必须为 FROM 指令,每创建一个镜像就需要一条 FROM指令

  2. MAINTAINER 名字

    说明镜像的维护人信息

  3. RUN 命令

    所基于的镜像上执行命令,并提交到新的镜像中

  4. ENTRYPOINT 【"要运行的程序","参数1","参数2"】

    设定容器启动时第一个运行的命令及其参数。

  5. CMD 【"要运行的程序","参数1","参数2"】

    启动容器时默认执行的命令或者脚本,dockerfile只能有一条 CMD命令,如有多条,只执行最后一条

  6. EXPOSE 端口号

    指定新镜像加载到 Docker 时要开启的端口 EXPOSE 8090

  7. ENV 环境变量 变量值

    设置一个环境变量的值,会被后面的 RUN 使用

  8. ADD 源文件/目录 目标文件/目录

    将源文件复制到镜像中,源文件要与 Dockerfile 位于相同目录中,或者是一个 URL

  9. COPY 源文件/目录 目标文件/目录

    只复制本地主机上的文件/目录复制到目标地点,源文件/目录要与Dockerfile 在相同的目录中

  10. VOLUME ["目录"]

    在容器中创建一个挂载点

  11. USER 用户名/UID

    指定运行容器时的用户

  12. WORKDIR 路径 /home

    为后续的RUN、CMD、ENTRYPOINT 指定工作目录

  13. ONBUILD 命令【坑,注意】

    指定所生成的镜像作为一个基础镜像时所要运行的命令

  14. healthcheck:

    健康检查

dockerfile搭建lnmp

1、创建虚拟网关

2、Dockerfile 搭建nginx(容器IP 为 172.18.0.10)

将压缩包拖至nginx目录下

 

Vim编辑Dockerfile文件 

生成镜像

 

 创建容器并指定端口号和 ip 

3、Dockerfile 搭建 mysql(容器IP 为 172.18.0.20)

在opt目录下创建mysql目录,并将mysql压缩包拖至目录

编辑vim Dockerfile文件

创建my.cnf文件

生成镜像

 创建并启动容器

4、Dockerfile 搭建 php(容器IP 为 172.18.0.30)

 Vim 编辑Dockerfile文件

生成镜像

创建容器

切换到mysql容器,进入数据库,创建名为wordpress的库,并赋权

5、浏览器访问:192.168.86.55/wordpress/index.php

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/132276.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wpf webBrowser控件 常用的函数和内存泄漏问题

介绍 WebBrowsers可以让我们在窗体中进行导航网页。 WebBrowser控件内部使用ie的引擎&#xff0c;因此使用WebBrowser我们必须安装ie浏览器&#xff08;windows默认安装的&#xff09;。 使用 直接在xmal中使用webBrowser控件 <WebBrowser x:Name"WebBrowser1"…

【计算机网络】poll | epoll

文章目录 1. pollpoll函数参数解析代码解析PollServer代码 poll 特点 2. epoll认识接口epoll_createepoll_ctlepoll_wait 基本原理红黑树就绪队列 1. poll poll函数参数解析 输入 man poll poll的第一个参数是文件描述符 poll的第二个参数为 等待的多个文件描述符(fd)数字层面…

使用asp.net core web api创建web后台,并连接和使用Sql Server数据库

前言&#xff1a;因为要写一个安卓端app&#xff0c;实现从服务器中获取电影数据&#xff0c;所以需要搭建服务端代码&#xff0c;之前学过C#&#xff0c;所以想用C#实现服务器段代码用于测试&#xff0c;本文使用C#语言&#xff0c;使用asp.net core web api组件搭建服务器端&…

安全典型配置(二)使用ACL限制用户在特定时间访问特定服务器的权限

安全典型配置&#xff08;一&#xff09;使用ACL限制FTP访问权限案例_厦门微思网络的博客-CSDN博客本例中配置的本地用户登录密码方式为irreversible-cipher&#xff0c;表示对用户密码采用不可逆算法进行加密&#xff0c;非法用户无法通过解密算法特殊处理后得到密码&#xff…

在Windows下自己从源码编译Python3.10.13成安装包

文章目录 &#xff08;一&#xff09;Python 3.10 的生命周期&#xff08;一&#xff09;下载源码&#xff08;二&#xff09;准备环境&#xff08;三&#xff09;编译&#xff08;3.1&#xff09;解压源码到目录&#xff08;3.2&#xff09;下载依赖&#xff08;PCBuild&#…

硬件基本功--过流、过压保护电路

1.简介 过流保护(OCP)&#xff1a;当电路电流超过预定最大值时&#xff0c;使保护装置动作的一种保护方式。不允许超过预定最大值电流&#xff0c;不然会烧坏电路的器件。过压保护(OVP)&#xff1a;被保护电路电压超过预定的最大值时&#xff0c;使电源断开或使受控设备电压降低…

多列等高实现

预期效果 多列等高,左右两列高度自适应且一样,分别设置不同背景色效果预览: 分别由6种方法实现 1、使用padding + margin + overflow 实现多列等高效果,具有良好的兼容性; 2、border实现多列等高,左边框宽度为200px,左列浮动,伪元素清除浮动; 3、父元素线性渐变背景色…

写进简历的软件测试项目实战经验(包含电商、银行、app等)

前言&#xff1a; 今天给大家带来几个软件测试项目的实战总结及经验&#xff0c;适合想自学、转行或者面试的朋友&#xff0c;可以写进简历里的那种哦。 1、项目名称: 家电购 项目描述&#xff1a; “家电购”商城系统是基于 web 浏览器的电子商务系统&#xff0c;通过互联…

canvas力导布局

老规矩&#xff0c;先上效果图 <html><head><style>* {margin: 0;padding: 0;}canvas {display: block;width: 100%;height: 100%;background: #000;}</style> </head><body><canvas id"network"></canvas> </…

RCD吸收电路的工作原理及参数计算方法详解

在电子电力技术和自动化控制领域内&#xff0c;RCD吸收电路非常重要&#xff0c;它的作用是吸收瞬间过电压和过电路免受电压波动的影响&#xff0c;因此被广泛应用在各种设备及系统中&#xff0c;今天凡亿将带领小伙伴们来了解下RCD吸收电路的工作原理及计算方法。 1、RCD吸收电…

景联文科技:3D点云标注应用场景和专业平台

3D点云技术之所以得到广泛发展和应用&#xff0c;主要是因为它能够以一种直观、真实和全面的方式来表示和获取现实世界中的三维信息。 3D点云的优势&#xff1a; 真实感和立体感&#xff1a;3D点云数据能够呈现物体的真实感和立体感&#xff0c;使观察者能够更直观地理解物体的…

git基础

Git 版本控制 什么是版本控制 版本控制是一种记录一个或若干文件内容变化&#xff0c;以便将来查阅特定版本修订情况的系统。 除了项目源代码&#xff0c;你可以对任何类型的文件进行版本控制。 为什么要版本控制 有了它你就可以将某个文件回溯到之前的状态&#xff0c;甚…