一篇文章带你入门Docker + Nginx.

👨‍🏫 Docker And Nginx.

简单学习Docker。

先理解一个问题:什么是容器?

我以前简单学Docker的时候,用Docker部署Redis和MySQL的时候,我以为容器仅仅只是一个容器,在这里我首先要纠正一点就是,不要把容器想成简单的容器,可以把每一个容器想象成一个Linux环境,我认为这一点也是Docker比较牛的地方.

🔖 一、Docker学习。

参考:Docker 教程 | 菜鸟教程 (runoob.com)

💡 1.1 什么是Docker.

Docker 是一个开源的应用容器引擎,基于Go实现,遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,这里所说的容器和上面我提到的容器是一个容器,容器是完全使用沙箱机制,可以这么理解就是,一台Linux部署了5个Docker容器,那么这一台电脑可以相当于6台电脑去使用,容器可以比作是Linux中的Linux,这个我也是在学习过程中才理解的.

不幸的是Docker开始收费了,但是幸运的是Docker提供社区版本来供我们学习.

💡 1.2 Docker 有什么优点.

现在,各个大厂都在使用Docker和K8S来进行上云,既然这么多大公司都在用,那么就说明,Docker肯定是有其非常亮眼的优势的,现在我们就来分析一下。

Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助Docker可以以管理应用程序的方式来管理基础架构。通过利用Docker的方法来快速交付、测试、部署代码。

💡 1.3 Docker 整体将架构.

参考:[Docker] Docker整体架构图 - dhcn - 博客园 (cnblogs.com)

Docker 是基于C/S 模式的架构的,其通过 DocekrClient 和 与 Docker Daemon 建立通信,使用远程API来管理和创建Docker容器. 其可以通过HTTP API 形式通信也可以通过Socket方式进行通信.

image-20210723173757637

Docker Client 通过发送请求到 Docker Server中,Docker Server 根据路由以及请求来调用Engine中的各个不同的Job来完成本次请求操作,而之后各个Job完成自己的任务向Engine返回即可.

💡 1.4 Docker安装.

因为DEV-CLOUD内部集成了Docker,所以这里省略. 如果想要在自己服务器上安装docker的话,参考上面 Docker 教程

💡 1.5 Docker 中容器和镜像的关系.

Docker中容器和镜像之间的关系就相当于操作系统中的进程和程序的关系。

💡 1.5 Docker命令.

下面是一些基本的Docker命令,一些高级的Docker命令没有列出来.

  • docker search nginx 搜索某个镜像.
  • docker pull nginx 下载nginx@latest.
  • docker images : 查看当前Docker中存在的镜像.
  • docker ps:查看当前未关闭的容器.
  • docker ps -a:查看所有容器.
  • docekr rm imagname 删除指定容器.
  • docker rmi imgid 删除指定镜像.
  • docker run --name 容器名字 -p 18088:18088 -d 镜像名字 , 关于docker run 的命令参数可以通过命令: docker run --help 去查看该命令参数的使用详解.
  • 使用 docker run 命令启动容器之后,可以通过 docker ps 查看当前正在运行的容器,如果发现当前没有正在运行的容器,那么可以使用 docker ps -a去查看所有的容器,包含已经关闭的容器.
  • docker exec -it 容器名字 bash:进入该容器内部,每一个容器都相当于是一个Linux环境。
  • docker strop 容器名字|容器ID 可以停掉该容器.
  • docker start 容器名字|容器ID 启动该容器,重新启动这个容器,可能该容器内部的配置文件已经改变.
  • docker restart 容器名字|容器ID 重启该容器.

💡 1.6 DockerFile 非常重要.

参考文档:Dockerfile详解

  • DockerFile的功能:我们可以利用DockerFIle来构建我们自己的Docker镜像,然后可以进行发布等,但是我们要进行构建镜像的话,前提是我们必须要依赖一个基础镜像. 而Dockerfile的第一行不能是注释,只能是FROM命令,表示该镜像的基础镜像是什么,docker build 在执行的时候从上乡下执行构建镜像,没执行一行命令就构建一个镜像,整个构建过程就相当于在基础镜像上层层叠加.

  • Dockerfile 命令形式.

    • Dockerfile 整体就两类语句组成:
    • ## 开头的注释信息.
    • instruction args 指令 + 参数.
    • Dockerfile 文件名字必须首字母大写.
    • Dockerfile 指令不区分大小写,但是为了方便和参数做区分,通常指令使用大写.
    • Dockerfile 指令按顺序从上至下依次执行.
    • Dockerfile 中第一个非注释行必须是FROM指令,用来指定当前镜像依据的是那个基础镜像.
    • Dockerfile 中需要调用的文件必须跟Dockerfile文件在同一目录下,或者在其子目录下,父目
  • 8
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Docker+Consul+Nginx+keepalived是一种常用的云原生架构方案,它结合了容器化、服务发现、负载均衡和高可用等多种技术手段,可用于构建高可用、弹性、可扩展的应用系统。 该方案的主要组件包括: 1. Docker:用于容器化应用程序和服务,提供了高效、轻量、可移植的应用打包和部署方式。 2. Consul:用于服务发现和配置管理,支持多数据中心、跨平台、高度可扩展的分布式系统。 3. Nginx:用于负载均衡和反向代理,支持高并发、高可用的流量分发。 4. keepalived:用于实现高可用的服务和节点,提供了基于 VRRP 协议的故障转移和自动切换功能。 在该方案中,Docker 容器作为应用程序和服务的运行环境,使用 Consul 进行服务注册和发现,并通过 Nginx 进行流量分发和负载均衡。同时,使用 keepalived 实现高可用的服务和节点,确保系统的稳定性和可用性。 项目描述可以按照以下步骤进行撰写: 1. 项目背景和目的:简要介绍本项目的背景和目的,说明为什么选择 Docker+Consul+Nginx+keepalived 方案。 2. 技术架构:详细介绍该方案的技术架构和组件,包括 Docker、Consul、Nginx 和 keepalived 的作用和使用方式。 3. 系统功能:描述系统的主要功能和特点,包括服务发现、负载均衡、高可用等方面。 4. 实现方式:介绍系统的具体实现方式和实现步骤,包括 Docker 镜像的构建、应用程序的容器化、Consul 的配置和使用、Nginx 的配置和使用、keepalived 的配置和使用等。 5. 测试和验证:对系统进行测试和验证,验证系统的功能和性能是否符合预期,是否满足高可用和弹性的要求。 6. 总结和展望:对本项目进行总结和展望,分析该方案的优缺点和适用范围,展望未来的发展方向和趋势。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值