容器化之Docker小知识普及
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小知识普及的更多相关文章
- 【转帖】使用容器化和 Docker 实现 DevOps 的基础知识
使用容器化和 Docker 实现 DevOps 的基础知识 https://www.kubernetes.org.cn/6730.html 2020-02-24 15:20 灵雀云 分类:容器 阅读( ...
- Docker容器化【Docker镜像与容器相关命令】
# Docker 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器的概念 完成Docker安装与启动 掌握Docker镜像与容器相关命令 掌握Tomcat Nginx 等软件的常用 ...
- Windows Server 2019 容器化探索-Docker安装
Docker on Windows Server 2019 微软自Windows Server 2016开始支持Docker,今天我们将介绍在Windows Server 2019上安装并使用Dock ...
- 容器化 — 基于Docker技术容器云
导读:本文介绍了基于Docker技术的企业级应用容器平台,从云的定义.云服务分类,到用友云PaaS基础平台.平台总体架构.架构预览.部署架构.平台核心价值和核心竞争力,阐述PaaS基础平台成为广大传统 ...
- docker基础知识普及(一)
背景 这篇内容是之前给部门同事培训时写的文档,旨在传达一些docker相关概念,有个基本印象,当然,以下内容都来自网络,我只是个搬运工.具体操作在下篇文章中 一.什么是docker? 1. Docke ...
- docker小知识
1,docker 使用普通用户 添加用户组: sudo groupadd docker 加入docker 组 sudo gpasswd -a ${USER} docker 或 usermod -aG ...
- Docker最全教程——数据库容器化(十)
终于按时完成第二篇.本来准备着手讲一些实践,但是数据库部分没有讲到,部分实践会存在一些问题,于是就有了此篇以及后续——数据库容器化.本篇将从SQL Server容器化实践开始,并逐步讲解其他数据库的容 ...
- python + docker, 实现天气数据 从FTP获取以及持久化(五)-- 利用 Docker 容器化 Python 程序
背景 不知不觉中,我们已经完成了所有的编程工作.接下来,我们需要把 Python 程序 做 容器化 (Docker)部署. 思考 考虑到项目的实际情况,“持久化天气”的功能将会是一个独立的功能模块发布 ...
- Docker---大型项目容器化改造
虚拟化和容器化是项目云化不可避免的两个问题.虚拟化由于是纯平台操作,一个运行于linux操作系统的项目几乎不需要做任何改造就可以支持虚拟化.而项目如果要支持容器化则需要做许多细致的改造工 ...
随机推荐
- .net 程序员 两年工作总结
2013 年7月毕业,算一算从开始在现任的公司实习到现在已经有小两年的时间了.公司的工作虽然不忙,但也一直没有时间思考一下. 现在决定辞职了,忽然一下轻松的让人想思考. 普通程序员.普通本科生.普通的 ...
- (让你提前知道软件开发33):数据操纵语言(DML)
文章2部分 数据库SQL语言 数据操纵语言(DML) 数据操纵语言(Data Manipulation Language,DML)包含insert.delete和update语句,用于增.删.改数据. ...
- std::string 简单入门
string的定义原型 typedef basic_string<char, char_traits<char>, allocator<char> > string ...
- Unity3d基础组件 (Component) 和脚本 (Script) 关系
原版的:http://edu.china.unity3d.com/learning_document/getData?file=/Manual/TheComponent-ScriptRelations ...
- Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK
原文:Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.ne ...
- ABP框架——单表实体流程
实体实体配置文件菜单本地化语言:xml文件权限配置领域服务应用层CRUDDTOSPA路由:app.js视图生成:.html,.js
- SQL Server数据库碎片整理
碎片产生 在SQL Server中,存储数据的最小单位是页,每一页所能容纳的数据为8060字节.而页的组织方式是通过B树结构 SQL Server向每个页内存储数据的最小单位是表的行(Row) ...
- 《Docker 实战》第三章 Docker Hub 寻宝游戏
# 秘密仓库和密码 docker run --rm -it --name password dockerinaction/ch3_ex2_huntanswer
- Win8Metro(C#)数字图像处理--2.25二值图像距离变换
原文:Win8Metro(C#)数字图像处理--2.25二值图像距离变换 [函数名称] 二值图像距离变换函数DistanceTransformProcess(WriteableBitmap sr ...
- Python Pandas 分析郁达夫《故都的秋》
最近刚学这块,如果有错误的地方还请大家担待. 本文用到的Python包: Ipython, Numpy, Pandas, Matplotlib 故都的秋原文参考:http://www.xiexingc ...