鞍山在百度做个网站多少钱,陇西学做网站,投资公司设立条件,如何做好一个网站数据卷
为什么用数据卷#xff1f;
宿主机无法直接访问容器中的文件容器中的文件没有持久化#xff0c;导致容器删除后#xff0c;文件数据也随之消失容器之间也无法直接访问互相的文件
为解决这些问题#xff0c;docker加入了数据卷机制#xff0c;能很好解决上面问题…数据卷
为什么用数据卷
宿主机无法直接访问容器中的文件容器中的文件没有持久化导致容器删除后文件数据也随之消失容器之间也无法直接访问互相的文件
为解决这些问题docker加入了数据卷机制能很好解决上面问题。
容器与主机之间、容器与容器之间共享文件容器中数据的持久化将容器中的数据备份、迁移、恢复等
数据卷的特点
数据卷存在于宿主机的文件系统中独立于容器和容器的生命周期是分离的。数据卷可以目录也可以是文件容器可以利用数据卷与宿主机进行数据共享实现了容器间的数据共享和交换。可以使用Docker命令行工具或Docker Compose等工具来创建、删除、备份和恢复数据卷。由于数据卷存储在主机上的指定位置相对于容器来说较为隔离这提供了更高的数据安全性。容器对数据卷的修改是实时进行的。 数据卷管理
Docker挂载容器数据卷的三种方式
bind mounts将宿主机上的一个文件或目录被挂载到容器上。volumes由Docker创建和管理。使用docker volume命令管理。tmpfs mountstmpfs 是一种基于内存的临时文件系统。
bind mounts方式挂载数据卷
利用docker run/create的参数为容器挂载数据卷
--mount参数
--mount typebind, src宿主机文件或文件夹路径, dst容器中的文件或者文件夹路径 volumes方式挂载数据卷
--mount 参数
--mount typevolume, srcVOLUME-NAME, dst容器中的文件或者文件夹路径
Docker的数据卷更多会是使用volumes方式来进行使用。
Docker仓库
Docker仓库就是存放docker镜像并有docker pull方法下载的云环境可以分为公有仓库和私有仓库
公有仓库指Docker Hub(官方)等开放给用户使用、允许用户管理镜像。 私有仓库指由用户自行搭建的存放镜像的云环境。
私有仓库搭建
拉取私有仓库镜像需要从Docker Hub拉取官方提供的registry镜像使用命令 docker pull registry。启动私有仓库容器运行命令 docker run -id --nameregistry -p 5000:5000 registry这将创建一个名为registry的容器并将主机的5000端口映射到容器的5000端口。验证私有仓库是否搭建成功打开浏览器访问 http://私有仓库服务器ip:5000/v2/_catalog如果看到 {repositories: []}则表示私有仓库搭建成功。配置Docker信任私有仓库地址修改 /etc/docker/daemon.json 文件添加 insecure-registries:[私有仓库服务器ip:5000]使Docker信任指定的私有仓库地址。注意替换为自己私有仓库服务器的真实IP。重启Docker服务执行 systemctl restart docker 来重启Docker服务使得之前的更改生效。将镜像上传至私有仓库先使用 docker tag 命令为本地镜像添加一个标签格式为 私有仓库服务器IP:5000/centos:7。然后使用 docker push 命令将标记的镜像上传到私有仓库。从私有仓库拉取镜像使用 docker pull 命令可以从私有仓库拉取已经上传的镜像。
Dockerfile
Dockerfile就是根据特定的语法格式撰写出来的一个普通的文本文件 利用docker build命令依次执行在Dockerfile中定义的一系列命令最终生成一个新的镜像 。
Dockerfile使用命令 – docker build
作用根据dockerfile创建镜像 docker build [OPTIONS] PATH | URL | - -t, --tag list 为镜像设置名称和tag
-f, --file string 指定Dockerfile的路径
特征
Dockerfile 由一系列指令构成每个指令通常在文件中占据一行。指令包括基础镜像设置FROM、维护者信息MAINTAINER、环境变量设置ENV、复制文件COPY 和 ADD、安装软件包RUN、设置工作目录WORKDIR、暴露端口EXPOSE、指定入口点CMD 和 ENTRYPOINT等每一个Dockerfile命令都会构建一层镜像。
Dockerfile 命令 FROM: 指定基础镜像RUN 构建镜像过程中需要执行的命令。。docker build CMD添加启动容器时需要执行的命令。ENTRYPOINT同CMD但这个一定会被执行不会被覆盖修改。 MLABELAINTAINER表明镜像的作者。将被遗弃被LABEL代替。EXPOSE设置对外暴露的端口。ENV设置执行命令时的环境变量并且在构建完成后仍然生效ARG设置只在构建过程中使用的环境变量构建完成后将消失ADD将本地文件或目录拷贝到镜像的文件系统中。能解压特定格式文件能将URL作为要拷贝的文件COPY将本地文件或目录拷贝到镜像的文件系统中。VOLUME添加数据卷USER指定以哪个用户的名义执行RUN, CMD 和ENTRYPOINT等命令WORKDIR设置工作目录 Docker Compose
Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。
Docker Compose 是 Docker 的官方工具它允许用户通过编写一个 YAML 文件来配置应用服务。这个配置文件可以定义服务的启动顺序、网络设置、挂载的卷以及其他与服务相关的选项。
Docker Compose 的一些主要功能
简化多容器应用管理使用 Docker Compose开发者可以通过一个配置文件定义多个容器及其相互关系然后使用一个命令来创建和启动所有服务。编排容器集群Compose 项目负责实现对 Docker 容器集群的快速编排使得部署和管理容器变得更加高效。支持多种环境Docker Compose 可以在各种环境中运行包括生产环境、测试环境和开发环境以及CI持续集成等场景。声明式配置通过编写 docker-compose.yml 文件用户可以声明式地定义服务的配置这有助于版本控制和团队成员之间的协作。网络互通在配置文件中可以定义服务之间的网络连接确保容器之间能够相互通信。灵活的变量支持Docker Compose 支持使用变量来自定义配置这使得在不同环境之间迁移和部署变得更加灵活。 管理方式
使用YAML文件来配置我们应用程序的服务使用单个命令docker-compose up就可以创建并启动配置文件中配置的所有服务。
Docker Compose File 有多个版本基本是向后兼容的但也有极个别配置项高版本中没有。 Docker Compose File 顶级配置项
version指定Docker Compose File版本号。services定义多个服务并配置启动参数。volumes声明或创建在多个服务中共同使用的数据卷对象。volumes声明或创建在多个服务中共同使用的数据卷对象。configs声明将在本服务中要使用的一些配置文件。secrets声明将在本服务中要使用的一些秘钥、密码文件。