导语
  生产环境的Docker设置包括的内容有一些基本的架构组件,这些组件对于运行容器话服务器以及传统服务器集群都是通用的,在很多的时候可以简单认为构建和运行容器的方式与构建和运行虚拟机的方式是一样的,只不过使用容器技术是利用了一套新的技术,那么怎么样去实现这个技术呢?

如何实现容器化
  首先实现容器化需要经历如下的一些步骤

  • 1、构建并保存镜像快照
  • 2、将镜像上传到仓库中
  • 3、下载镜像到某台机器上
  • 4、以容器的方式运行镜像
  • 5、将容器镜像与其他服务相互连接
  • 6、将流量路由到容器中
  • 7、发送容器日志到指定的位置
  • 8、对容器进行监控

经过以上这些步骤就可以简单的实现一个容器部署,与虚拟机技术不同的是,容器通过将宿主机与应用服务隔离的方式提高了灵活性,这也为构建和配置流程带来直接的改善,但是由于额外的容器嵌入,也会为系统带来一定的系统开销。
经典Docker技术栈
  在经典的Docker容器化技术所支持的技术栈主要关注的点有如下一些

  • 1、如何构建系统
  • 2、如何构建镜像仓库
  • 3、对于宿主机的管理
  • 4、对于配置的管理
  • 5、怎样部署
  • 6、怎样编排
  • 7、怎样管理日志
  • 8、怎样实现监控

1、如何构建系统

  这里主要解决两个问题

  • 1、如何构建镜像,并将镜像推送到镜像仓库中?
  • 2、Dockerfile放到什么位置

构建Docker镜像通常有如下的两种方式。

  • 1、在开发人员的电脑上手工构建,然后推送到镜像仓库中
  • 2、使用CI/CD系统在代码提交时自动创建

  在理想状态下Docker生产环境将使用类似于Jenkins或者是Codeship这样的CI/CD(配置集成/持续部署)系统,在代码提交的时候自动构建镜像,一旦容器构建完成,它将会被发布到镜像仓库中,自动化测试系统就可以从中下载并且运行该镜像。

2、构建镜像仓库

  • Docker保存在什么地方?

  当前的Docker镜像仓库可靠性能较差,每个时间段都有所提升,Docker官方的镜像仓库是不可靠的。所以在很多的地方使用的国内阿里的仓库。所以在实际使用的时候最好创建自己的私有的镜像仓库,从而减少了网络传输的延迟和传输成本。

3、宿主机如何管理

  • 1、怎么样配置宿主机
  • 2、怎么样升级宿主机

  一般情况下Docker镜像包含了应用以及其依赖,宿主机管理系统通常只需要添加新服务器,配置访问权限以及防火墙,安装Docker守护进程就可以了

4、怎么样进行配置管理

  • 1、怎样定义容器集群
  • 2、如何处理宿主机和容器运行时的配置
  • 3、怎样管理密钥等信息

  配置管理的一个基本原则:尽量避免使用传统的配置管理系统,这样会增加配置的复杂性造成不必要的故障。Ansible、SaltStack、Chef或者Puppet这一类的工具仅仅是用来配备带有Docker守护进程的宿主机,尽可能摆脱对旧的配置管理系统的依赖。

5、如何进行部署

  • 如何将容器放到宿主机上

对于镜像的部署有如下的两种方式

  • 推送 - 部署或者是编排系统将镜像推送到宿主机上
  • 拉取 - 从宿主机上从镜像仓库中拉取镜像进行处理

6、如何编排

  • 如何将容器组成集群
  • 在哪些服务器上运行容器
  • 如何调度服务器资源
  • 如何运行容器
  • 如何将流量进行分发
  • 如何让容器公开和发现服务

  实际工作中有比较多的Docker编排系统,例如Docker Swarm、Kubernetes、Mesos和Flynn。对于大多数团队来说这些系统都过于强大,增加了在生产环境中出现问题的调试复杂度。这样就造成在使用哪个工具来完成编排和运行Docker工作的难度。所以需要更具实际情况选择对应的工具来达到高效的利用的目的。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐