Docker 是一个开源的容器化平台,通过将应用程序和其依赖打包在一个轻量级、独立的容器中,能够跨平台和环境部署。
- 镜像 (Image):Docker 镜像是一个只读模板,包含运行应用程序所需的代码、库、依赖和环境配置。镜像类似于一个模板,可以用来创建容器。
- 容器 (Container):容器是镜像的一个运行实例,它可以运行一个或多个进程,且具有隔离性。容器的生命周期短暂,可以随时启动、停止或销毁。
- Dockerfile:Dockerfile 是一组指令文件,用来定义镜像的构建过程。开发者可以通过 Dockerfile 编写应用及其依赖环境的打包脚本。
- 仓库 (Repository):Docker 镜像的存储位置,类似于代码的版本控制系统。镜像可以推送到仓库中供其他用户下载使用。Docker Hub 是一个公共仓库,提供了大量的官方和社区镜像。
- 轻量级:Docker 使用系统级别的虚拟化,而非虚拟机,不需要完整的操作系统,容器启动速度更快,占用资源更少。
- 环境一致性:Docker 容器包含应用运行所需的全部环境配置,确保在不同环境中行为一致,减少了环境配置不一致导致的问题。
- 快速部署与扩展:Docker 支持快速部署和缩放,可以在几秒钟内启动多个实例,适合大规模应用的部署和扩展。
- 便于 CI/CD:Docker 与 DevOps 流程无缝集成,支持持续集成、交付和部署。
安装参考Docker官方文档,地址如下:
首先如果系统中已经存在旧的Docker,则先卸载:
首先要安装一个yum工具
安装成功后,执行命令,配置Docker的yum源:
更新yum,建立缓存
最后,执行命令,安装Docker
Docker本身包含一个后台服务,我们可以利用Docker命令告诉Docker服务,帮助我们快速部署指定的应用。Docker服务部署应用时,首先要去搜索并下载应用对应的镜像,然后根据镜像创建并允许容器,应用就部署完成了。
默认情况下,每次重启虚拟机我们都需要手动启动Docker和Docker中的容器。通过命令可以实现开机自启:
镜像的名称不是随意的,而是要到DockerRegistry中寻找,镜像运行时的配置也不是随意的,要参考镜像的帮助文档,这些在DockerHub网站或者软件的官方网站中都能找到。
镜像的来源有两种:
(1)直接去DockerRegistry下载
(2)基于官方基础镜像自己制作
由于制作镜像的过程中,需要逐层处理和打包,比较复杂,所以Docker就提供了自动打包镜像的功能。我们只需要将打包的过程,每一层要做的事情用固定的语法写下来,交给Docker去执行即可。
而这种记录镜像结构的文件就称为Dockerfile,其对应的语法可以参考官方文档:
https://docs.docker.com/engine/reference/builder/
例如,要基于Ubuntu镜像来构建一个Java应用,其Dockerfile内容如下:
然后,执行命令,构建镜像:
Java项目往往需要访问其它各种中间件,例如MySQL、Redis等。放在同一个网络中,我们的容器之间能互相访问。
Docker Compose 是一个工具,允许用户定义并运行多个容器服务。通过编写 文件,用户可以轻松地配置应用的多个服务并管理它们。
稍微复杂的项目,会有各种各样的其它中间件,需要部署的东西很多。如果手动的逐一部署,就太麻烦了。
而Docker Compose就可以帮助我们实现多个相互关联的Docker容器的快速部署。它允许用户通过一个单独的 docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器。
举例来说,用docker run部署MySQL的命令如下:
如果用文件来定义,就是这样:
编写好docker-compose.yml文件,就可以部署项目了。常见的命令:
项目说明:
- cyt:后端代码
- cyt-portal:用户端的前端代码
- cyt-admin:管理端的前端代码
5.1.1 部署Java项目
注意:host采用了mysql作为地址,刚好是我们的mysql容器名,只要两者在一个网络,就一定能互相访问。
首先将项目打包;
将目录下的和目录下的一起上传到虚拟机的目录。
5.1.2 部署前端
将前端代码拷贝到nginx的html目录下,在配置文件,完成对下的两个静态资源目录做代理。
将整个nginx目录上传到虚拟机的目录下
编写docker-compose.yml文件
在终端中运行以下命令,Docker Compose 会读取 文件并启动配置的服务
到此这篇docker发布时间(docker一般部署什么)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/hd-yjs/29259.html