linux之docker
简介
Docker是一个开源的应用容器引擎,基于go语言,遵循从Apache2.0协议开源
Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植的容器中,然后发布到任何流行的linux机器上,也可以实现虚拟化.
容器是完全使用沙箱机制,相互之间不会有任何接口.
docker的三大概念
镜像:
--理解为系统盘dvd镜像,轻量级的镜像文件 仓库:
--存储docker镜像的 容器:
--是基于镜像运行出的,容器实例
三大概念
Docker应用场景
1.本地依赖
--使用docker,可以节省大量时间.docker能提升开发者的开发效率,让我们快速搭建开发环境,开发环境的机器通常内存比较小,此前使用虚拟的时候,经常需要为开发环境的机器加内存,而通过 Docker 可以轻易的让几十个服务在 Docker 中跑起来。 2.搭建环境
--它能让你将运行环境和配置放在代码中然后部署,同一个Docker的配置可以在不同的环境中使用,这样就降低了硬件要求和应用环境之间耦合度 3.微服务
--微服务架构一一将一个整体的应用拆分成松耦合的单个体服务.你可以将每个服务打包为一个 docker 镜像并使用 docker-compose 来模拟生产环境(checkout docker networks)。最开始实践的时候可能会比较费时费力,但长远地来看,最终将产生巨大的生产力。 4.自动测试
--这里不是指在 Docker 中运行测试用例,而是将测试用例与镜像紧密运行在一起。当你针对一个 docker 镜像编写测试用例时会有一个很大的优势 5.部署过程
--许多主流的主机提供商都支持托管 docker,如果你拥有一个具有 shell 访问权限的专用节点/vm,那么事情将变得更容易。只需要设置好 docker,并在你想要的端口上运行你的镜像即可。 6.持续部署
--都说 Docker 天生适合持续集成/持续部署,在部署中使用 Docker,持续部署将变得非常简单,并会在进入新的镜像后重新开始。Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。 7.多租户环境
--Docker 有意思的一个使用场景是在多租户的应用中,它可以避免关键应用的重写。如果你将应用程序服务公开给多个租户(租户指一组用户,例如组织),使用单租户方案设计的应用程序如果用上了 sub-domain + docker 可以快速获得提供多租户的服务。 8.来自一台机器的而多个app
--ocker 仍可以很好地管理单个机器上的所有服务。你应该使用文件夹挂载来为每个基于数据的 docker 镜像保留数据。 9.扩容
--Docker 通过创建另一个容器来帮助你轻松地进行水平扩展。如果遇到巨大的高峰流量,Docker 可以帮助你解决问题 —— 只需添加更多的机器并增加负载均衡器背后运行的容器数量。
场景
Docker的优点
1、简化程序:
Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。
Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的任务,在Docker容器的处理下,只需要数秒就能完成。 2、避免选择恐惧症
如果你有选择恐惧症,还是资深患者。Docker 帮你打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,
所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。 3、节省开支:
一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,
让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。
Docker安装
1.安装docker,由于网速问题,选择阿里云的yum源下载
yum install docker -y
2.启动docker
systemct1 start docker
3.docker加速器,加速下载
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
会生成一个docker配置文件,路径是/etc/docker/daemon.json
4.配置了加速器,需要重启docker
systemct1 restart docker
Docker的基本命令学习
增
#下载docker镜像
docker pull hello-world
#运行docker镜像,产生容器实例 #运行docker镜像,ubuntu系统
docker run ubuntu #交互式的运行ubuntu 容器,进入容器空间内 docker run -it ubuntu /bin/bash
#参数解释
-i 交互式的命令操作
-t 开启一个终端提供访问
/bin/bash 指定shell解释器 #打包构建一个携带vim的centos镜像文件
1.先运行一个centos基础镜像
docker run -it centos /bin/bash
2.在容器空间内,安装vim
yum install vim -y
3.退出容器空间,提交这个容器,为新的镜像
docker commit 1d5698b91178 yuchao163/s17centos-vim #导出本地的镜像文件
docker save 0fc9d49cb739 > /opt/s17centos.tar.gz #导入镜像文件,
docker load < /opt/s17centos.tar.gz
增
#删除容器记录 docker rm 容器id #批量删除容器记录
docker rm `docker ps -aq` #强制删除所有容器记录 docker rm -f `docker ps -aq` #删除镜像记录 docker rmi 镜像id #批量删除镜像文件
docker rmi `docker images -aq`
删
改: #修改docker镜像名,tag标记名
docker tag 镜像id 新的标记名 查: 运行过docker镜像后,会产生容器记录 #差看docker镜像的命令 docker image ls
docker images #等同于上述命令,查看镜像 #查看正在运行的容器进程,
docker container ls
docker ps #docker ps只能查看正在运行的容器
docker ps -a 查看所有的容器记录 #docker容器,必须有后台程序在运行,否则容器就退出 #查询docker镜像记录 docker search centos
改和查
linux之docker的更多相关文章
- 使用VS把ASP.NET 5的应用发布到Linux的Docker上
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:我相信未来应用程序的部署模式首选一定会是Docker,所以.NET社区的朋友也不应该忽 ...
- Linux(Manjaro) - Docker - MySQL 安装配置
Linux(Manjaro) - Docker - MySQL 安装配置 拉取mysql镜像 # 使用网易的 MySQL 镜像地址 docker pull hub.c.163.com/library/ ...
- 【Docker】(3)---linux部署Docker、Docker常用命令
linux部署Docker.Docker常用命令 本次部署Linux版本:CentOS 7.4 64位. 说明: 因为Docker是基于Linux 64bit的 所以Docker要求64位的系统且内核 ...
- 将自己的SpringBoot应用打包发布到Linux下Docker中
目录 将自己的SpringBoot应用打包发布到Linux下Docker中 1. 环境介绍 2. 开始前的准备 2.1 开启docker远程连接 2.2 新建SpringBoot项目 3. 开始构建我 ...
- linux --- 9. docker 容器 和 rabbitmq 队列
一. docker 容器 1.docker是什么? .linux下容器技术有很多,docker是做的最杰出的一款 .docker能够支撑阿里双十一,京东618的业务,说明,性能,安全性不得差 .doc ...
- Linux通过docker安装运行酷Q--用QQ骰子君进行跑团
Linux通过docker安装运行酷Q 文:铁乐与猫 需求:和小伙伴周末进行愉快的TRPG跑团,需要在QQ讨论组上加了qq小号后,将qq小号用酷Q配合投骰的应用变成骰子君. 限制:我个人的云计算服务器 ...
- vs2017创建netcore项目,部署到linux的docker容器里面
开发环境 1.win10下面安装VS2017 2.linux安装Ubuntu16.4系统 步骤: 第一步:linux安装docker容器 docker中文文档,里面有详解的docker介绍及讲解,建议 ...
- Linux下docker的安装
前言: 因为之前在自己的mac上直接使用HomeBrew的包管理安装的,使用brew install docker即可,这种方法简单,但最近想尝试在Linux下安装,费了一些时间,主要是启动docke ...
- 本地Docker Jenkins构建dotnet core web应用到Linux服务器 Docker上
1.准备工作 环境 本地: Windows.Docker 代码仓库:Git 服务器:Linux.Docker 前提准备 创建个有dockerfile文件的dotnet core 3 web项目 新建一 ...
- Linux 使用 docker 下搭建xunsearch 搜索引擎服务
Linux 使用 docker 下搭建 xunsearch 搜索引擎服务 安装 docker 环境(菜鸟教程有说明) 安装docker说明 下载并运行 xunsearch 的服务端:docker安装x ...
随机推荐
- light oj 1149 Factors and Multiples(二分匹配)
LightOJ1149 :Factors and Multiples 时间限制:2000MS 内存限制:32768KByte 64位IO格式:%lld & %llu 描述 You w ...
- 百度the big talk节目
主要事件 2015-03-09期:硅谷峰会:智能机器人&对话沃兹尼亚克 2015-03-02期:硅谷峰会:创新金融和智能城市 2015-02-15期:硅谷峰会:数字生物学和数字医药 2015- ...
- Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---装饰模式之StarBuzzCoffee[转]
1 2{<HeadFirst设计模式>之装饰模式 } 3{ 本单元中的类为被装饰者 } 4{ 编译工具: Delphi7.0 } 5{ E-Ma ...
- mysql查询 包含某个字符的记录
从excel导入数据库的时候,发现poi自动把电话号码转换为科学计数法了 所以要把带e的筛选出来 SELECT * FROM t_customer WHERE phone like '%E%'; 然后 ...
- HTTPS的实现
1.安装专门的mod_ssl模块 [root@contos7 ~]# yum install mod_ssl Loaded plugins: fastestmirror, langpacks Load ...
- 【python自动化学习笔记】
[python自动化第一篇:python介绍与入门] [python自动化第二篇:python入门] [python自动化第三篇:python入门进阶] [Python自动化第三篇(2):文 ...
- 2019.9.17 csp-s模拟测试45 反思总结
来了来了,垃圾二连.[指两次发博客] 看了一下题就匆匆回去上课,在课上一边听课一边水oi,大概用1h40min的时间想完三道题.最后回到机房只剩下40min的时间敲代码,于是T1骗了70分就走了… 这 ...
- ie8或9下ajax跨域问题
ie8或9下ajax跨域支持,添加如下代码 <!--[if (IE 8)|(IE 9)]><script src="https://cdn.bootcss.com/jque ...
- 2018-5-4-WPF-获得触摸精度和触摸点
title author date CreateTime categories WPF 获得触摸精度和触摸点 lindexi 2018-05-04 21:11:51 +0800 2018-5-4 21 ...
- 随机模块(import random)
随机的概念: 在某个范围内取到的每一个值的概率是相同的 随机小数: 1.random.random() #0-1之内的随机小数 2.random.unifom(1,5) #范围之内的随机小数 随机整数 ...