美文网首页
第一章节 认识docker

第一章节 认识docker

作者: 小银杏 | 来源:发表于2017-09-29 18:16 被阅读4次

docker是什么?

docker实际是个进程管理工具,类似于pm2,但不同的是pm2主要用来管理node/python等的进程,而Docker实际上不光管理进程,还实现了进程运行环境与宿主的隔离,使其表现出来就像运行在虚拟机当中一样。但较于虚拟机有本质的区别,尤其是性能上面以及与宿主进行数据交换等都不同。虚拟机是完整的虚拟出一整个系统基础设施出来,会造成很多不必要的性能浪费,而docker则是直接共享宿主机的所有资源,包括网络,硬盘,等等。只不过把不同应用使用的资源进行了隔离。

与此同时,docker还带来了一些理念,帮助应用开发者更好的实现应用的可移植可扩展,单一环境等特性。

docker能解决什么问题?

1、环境和部署问题

现实的环境当中,环境是个特别麻烦的东西,比如不同版本的nginx/node/pm2问题,应用运行的端口分配,环境变量,配置文件等等。不同的目录访问读写权限等。扩展的安装等等。不同版本环境依赖的项目,以及不同时期的项目,新的老的旧的。

2、弹性扩展

第一章节 认识docker

A、对于那种“秒杀”类应用,典型特点是 瞬间并发流量高,一旦高并发过去之后。基本就没有什么流量了。此时适合于提高“高速缓冲区”的节点数,此处的节点数越多,越能抗瞬间并发流量。

B、对于那种持续高流量的应用,例如tracker等,即可通过提高“高速缓冲区”的节点数,增加数据容量,也可提高“Agent Robot”的节点数,加快数据的传输,降低缓冲区压力,而robot处理的越频,则数据库的压力将持续增加,此时Robot的节点数增多,有序的持续的对数据库进行写入,避免数据库有空闲时间。最大程度的榨干数据库的能力。

C、如果AB方案的提升仍然不能满足高速的业务需求,则瓶颈主要在数据库写入上,可通过 主从分库和提升机器CPU与内存来缓解数据库压力。如果仍不能满足需求,则需要更改数据库结构,分库分表以及归档处理。

3、简化运维

有个运维跟我说过,在他们这里就没有什么(应用)是稳定的。在计算机当中,确实没有什么是稳定的,随时随地可能遇到,比如老鼠、小猫、蟑螂把电线给咬了,蓝翔实习把电缆给挖了。网线松了,硬盘掉电进灰了。静电把内存给烧了,被雷劈了。这是硬件上的风险,

软件上的风险,诸如,端口冲突了,软件之间不兼容了,莫名其妙自己崩溃了。连接丢失了,网络超时了。等等等。而本身的部署环境比较复杂,docker的隔离带来的好处是比如nginx运行着,突然不行了,可以瞬间重新启动一个新的容器,把老的给替掉,而不用担心遗留问题,不必担心两个应用端口冲突,因为端口都是由宿主分配的,不必担心不同人的电脑环境不一致了,docker可以保证所有人的电脑运行的容器都是在同一个环境下的。不必再担心一台电脑上安装有两个或以上的nginx或两个以上的jenkins,新的旧的不知道哪个是对的。不敢乱动,因为担心弄坏。任何熟悉docker的人都能很快的用相同的命令管理这一切的软件,无论是项目还是软件,jenkins,dns,nginx,redis,gitlab,node通通收在容器内,即可做为项目运行,也可以单独的做为一个固化的运行或编译环境。

4、更加的安全

因为与宿主的隔离,对于权限问题,所有的应用都被封在内部网络,病毒木马和黑客无法突破容器内的限制,除非你主动开放,那么它很难成功发起攻击。

docker的安装和环境选择?

一、为什么应该使用linux安装部署而不是直接安装在windows/mac上

docker本身只支持linux系统,其运行在windows/mac上是通过建立一个虚拟机运行的,对机器的资源消耗非常大,新版本或许可以原生支持,但仍然对机器消耗大,且存在很多不稳定因素。所以建议,直接安装在linux上,并且固定在linux发行版centos7上面,不同的发行版,都不太一样,有很多坑。。

二、centos安装时的注意事项

centos的安装,直接通过一键安装脚本。一般没有其它特别的问题,有可能因为docker-registry的网络问题导致不能拉取镜像,此时换个时间段拉取,或建立私有docker-registry,存储镜像。

# 一键安装部署脚本

sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'

[dockerrepo]

name=Docker Repository

baseurl=https://yum.dockerproject.org/repo/main/centos/7/

enabled=1

gpgcheck=1

gpgkey=https://yum.dockerproject.org/gpg

EOF

sudo yum install docker-engine -y

service docker stop

service docker start

curl -L https://github.com/docker/compose/releases/download/1.14.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

docker及docker-compose常用命令介绍

docker exec -it 832dcf5f9ec1 /bin/bash 进入一个运行中的容器

docker exec -it 832dcf5f9ec1 /bin/sh

docker save kemao-dev/gitlab-runner > kemao-dev--gitlab-runner.tar.gz 导出镜像

Docker load < xx.tar 导入镜像

Docker export xx> xx.tar 导出容器

Docker import

相关文章

  • 第一章节 认识docker

    docker是什么? docker实际是个进程管理工具,类似于pm2,但不同的是pm2主要用来管理node/pyt...

  • Docker简介

    章节介绍 # Docker是什么# Docker包括什么# Docker镜像# Docker编配# Docker还...

  • docker笔记

    第一章节: DOCKER的安装与使用 1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本...

  • docker-compose 学习笔记

    最近学习《第一本docker书》, 学习完 Docker Compose 这一章节之后打算自己使用它来构建一个使用...

  • Docker总结:《Docker从入门到实战(黄靖钧)》

    观其大纲 第一篇 容器技术与Docker概念1认识容器技术2 Docker基本概念3 安装和测试Docker第二...

  • 【在开发中使用docker】

    此章节为《Docker开发指南》的第五章—— 在开发中使用docker 的个人读书笔记 本章节内容如下: 先创建如...

  • Docker学习(四)docker容器

    一、docker容器 上一章节我们学习了docker镜像额相关内容,基于docker镜像,我们可以创建docker...

  • docker入门之安装

    引言 本章节只介绍docker的简单使用,具体的架构实现在后续章节展开 在初识docker一文中已经介绍,dock...

  • docker概述

    1.docker入门 本文阐述docker是什么,为什么用docker,以及怎么用,该章节为入门篇 ① docke...

  • [Docker性能优化]Docker基本操作

    书中章节:第1章 准备Docker 宿主机第2章 优化Docker 镜像第3章 用Chef 自动化部署Docker...

网友评论

      本文标题:第一章节 认识docker

      本文链接:https://www.haomeiwen.com/subject/jyxwextx.html