Docker确实是个好东西,相当于一个小型虚拟机,里面环境隔离只要有对应的镜像就能运行业务应用、运行基础应用、能跑数据库等等,还能跑linux等等。

Docker 从狭义上来讲就是一个进程,从广义上来讲是一个虚拟容器,其实更专业的叫法是应用容器( Application Container ),Docker 进程和普通的进程没有任何区别,它就是一个普通的应用进程。不过是用来操作镜像文件的。所以 Docker 进程 + 构建的应用镜像文件就等于 Docker 容器。

Docker基本概念有三项:镜像,容器,仓库

  镜像相当于java中的jar包;镜像仓库相当于jar存储的仓库,只不过这里存储的是镜像;容器就是一个镜像运行的实例,相当于java运行起来的一个进程。

  镜像有基础镜像,如centos、mysql、redis镜像,这些自己不用做 官网有人已经做好了这些镜像 可以直接拉下来用,如果要做自己的特殊需要的镜像,可以直接在这些基础镜像上构建。

容器

  你可以从镜像中创建容器,这如同运行一个程序,不过更轻量,启动更快,秒启。

  每个容器都是独立的封闭的,需要对外提供服务就需要公开容器的特定端口,在启动 Docker 的时候将容器的特定端口映射到宿主机上面的任意一个端口,可以将容器的端口映射成任意的对外端口,可解决多个应用端口相同产生的冲突,所以就不需要通过代理来解决冲突。容器对外端口与宿主机的端口映射可以通过下面的命令来完成。
启动 docker 容器

docker run -d -p 2222:22 --name 容器名 镜像名
-d 守护容器,就是后台运行,退出命令窗口容器也不会停止
-it 交互式容器 退出命令窗口容器就停止运行了
-p 宿主机端口和容器端口映射
8081:80 宿主机端口: 容器公开的端口

仓库Docker registeries

  docker仓库用来存放镜像的,仓库存在公有和私有之分,公有仓库 docker hub 提供了非常多的镜像文件,这些镜像直接拉取下来就可以运行了,你也可以上传自己的镜像到 docker hub 上面。同时也可以自己搭建私有仓库用于团队项目管理如可以用Nexus,怎么搭建下几篇再说,在k8s中也在专门的仓库组件。

Docker 的生命周期

  • 开发构建镜像并将镜像 push 到 Docker 仓库
  • 测试或者运维从 Docker 仓库拉取镜像到测试服务器部署
  • 通过镜像文件开启 Docker 容器并提供服务

  总之构建容易分发简单 · 隔离应用解除依赖 · 快速部署测完就销

Docker和传统虚拟机有啥区别

Docker这个虚拟机超级轻量级,仅仅是一个进程而已。与传统的虚拟机比如 VM 有着巨大的差别:

  Docker相对于 VM 有以下几个优点:

启动速度快,容器启动本质就是一个开启一个进程而已,因此都是秒启,而 VM 通常要更久。

资源利用率高,一台普通 PC 可以跑成百上千个容器,你跑十个 VM 试试。

性能开销小, VM 通常需要额外的 CPU 和内存来完成 OS 的功能,这一部分占据了额外的资源。

  所以很多移动互联网的应用或者云计算的后端节点都可以用 docker 来替换物理机器或者虚拟机,比如腾讯地图的很多后台服务基本上都迁移 docker 部署了。

docker是应用的基石

最后强调为什么要用Docker

Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现 “这段代码在我机器上没问题啊” 这类问题;——一致的运行环境
可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。——更快速的启动时间
避免公用的服务器,资源会容易受到其他用户的影响。——隔离性
善于处理集中爆发的服务器使用压力;——弹性伸缩,快速扩展
可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。——迁移方便
使用 Docker 可以通过定制应用镜像来实现持续集成、持续交付、部署。——持续交付和部署

容器化之Docker小知识普及的更多相关文章

  1. 【转帖】使用容器化和 Docker 实现 DevOps 的基础知识

    使用容器化和 Docker 实现 DevOps 的基础知识 https://www.kubernetes.org.cn/6730.html 2020-02-24 15:20 灵雀云 分类:容器 阅读( ...

  2. Docker容器化【Docker镜像与容器相关命令】

    # Docker 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器的概念 完成Docker安装与启动 掌握Docker镜像与容器相关命令 掌握Tomcat Nginx 等软件的常用 ...

  3. Windows Server 2019 容器化探索-Docker安装

    Docker on Windows Server 2019 微软自Windows Server 2016开始支持Docker,今天我们将介绍在Windows Server 2019上安装并使用Dock ...

  4. 容器化 — 基于Docker技术容器云

    导读:本文介绍了基于Docker技术的企业级应用容器平台,从云的定义.云服务分类,到用友云PaaS基础平台.平台总体架构.架构预览.部署架构.平台核心价值和核心竞争力,阐述PaaS基础平台成为广大传统 ...

  5. docker基础知识普及(一)

    背景 这篇内容是之前给部门同事培训时写的文档,旨在传达一些docker相关概念,有个基本印象,当然,以下内容都来自网络,我只是个搬运工.具体操作在下篇文章中 一.什么是docker? 1. Docke ...

  6. docker小知识

    1,docker 使用普通用户 添加用户组: sudo groupadd docker 加入docker 组 sudo gpasswd -a ${USER} docker 或 usermod -aG ...

  7. Docker最全教程——数据库容器化(十)

    终于按时完成第二篇.本来准备着手讲一些实践,但是数据库部分没有讲到,部分实践会存在一些问题,于是就有了此篇以及后续——数据库容器化.本篇将从SQL Server容器化实践开始,并逐步讲解其他数据库的容 ...

  8. python + docker, 实现天气数据 从FTP获取以及持久化(五)-- 利用 Docker 容器化 Python 程序

    背景 不知不觉中,我们已经完成了所有的编程工作.接下来,我们需要把 Python 程序 做 容器化 (Docker)部署. 思考 考虑到项目的实际情况,“持久化天气”的功能将会是一个独立的功能模块发布 ...

  9. Docker---大型项目容器化改造

           虚拟化和容器化是项目云化不可避免的两个问题.虚拟化由于是纯平台操作,一个运行于linux操作系统的项目几乎不需要做任何改造就可以支持虚拟化.而项目如果要支持容器化则需要做许多细致的改造工 ...

随机推荐

  1. 今天用pro安装nginx+php+mysql出现故障的解决方法

    今天用pro安装nginx+php+mysql出现故障的解决方法 by 伍雪颖 dyld: Library not loaded: @@HOMEBREW_CELLAR@@/openssl/1.0.1h ...

  2. Qt、Qte与Qtopia(Qt嵌入式的发展历程)

    Qt的授权是分为两条线,商业版和开源版.如果使用商业版的Qt,那么开发出的程序可以是私有的和商业的:如果使用的是开源版的Qt,由于其使用的是GPL协议,那么可发出的程序也必须是GPL的.不过自从qt ...

  3. [ACM] POJ 3096 Surprising Strings (map使用)

    Surprising Strings Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5783   Accepted: 379 ...

  4. UWP 应用中的Back button(TitleBar) 的处理

    后退按钮是一项系统提供的 UI 提示,可以在后退堆栈或用户导航历史记录中支持向后导航. 用起来其实也是很简单的,只需要在App.xaml.cs 中修改(添加)如下红色代码,便可实现.. sealed ...

  5. fzu-1753 Another Easy Problem-高速求N!多少个月p

    它计算每个C(N,M)什么号码乘以像.... #include <iostream> #include<stdio.h> #include<vector> #inc ...

  6. C/C++使用libcurl库发送http请求(get和post可以用于请求html信息,也可以请求xml和json等串)

    C++要实现http网络连接,需要借助第三方库,libcurl使用起来还是很方便的 环境:win32 + vs2015 如果要在Linux下使用,基本同理 1,下载编译libcurl 下载curl源码 ...

  7. 自定义View实现图片热区效果

    我司主要从事工业物联网领域软件的开发,现有个需求,在外废品处理时需要对产品的不良位置进行标记,点选图片实现图片网格的着色功能. 需求是通过自定义view来实现,实现思路如下: 首先将点击的小方格对象实 ...

  8. Gralde 同步失败

    Gralde 同步失败 尝试了各种方法,至少我觉得常见的一些方法我都尝试了.但一直下载依赖失败 > Could not resolve all files for configuration ' ...

  9. 图像滤镜艺术---Glow Filter发光滤镜

    原文:图像滤镜艺术---Glow Filter发光滤镜 Glow Filter发光滤镜 Glow Filter发光滤镜是一种让图像产生发光效果的滤镜,它的实现算法如下: 1,对原图P进行高斯模糊得到图 ...

  10. 基于Go语言快速构建RESTful API服务

    In this post, we will not only cover how to use Go to create a RESTful JSON API, but we will also ta ...