1. 前言 使用Docker创建容器时,基础镜像通常选择Ubuntu或Centos,不管哪个镜像的大小都在100MB以上. Alpine Linux是一个面向安全的轻型的Linux发行版. Alpine Linux采用了 musl libc 和 busybox以减小系统的体积和运行时资源消耗. 在保持瘦身的同时,Alpine Linux还提供了自己的包管理工具apk. 关键的是,相比于其他Linux的Docker镜像,它的容量非常小,仅仅只有5MB. Alpine Linux的官网: http:…
Alpine Linux的官网: http://www.alpinelinux.org/    #官方 https://pkgs.alpinelinux.org/packages  #官方提供的安装包查询 使用Docker创建容器时,基础镜像通常选择Ubuntu或Centos,不管哪个镜像的大小都在100MB以上. Alpine Linux是一个面向安全的轻型的Linux发行版. Alpine Linux采用了 musl libc 和 busybox以减小系统的体积和运行时资源消耗. 在保持瘦身…
Alpine 操作系统是一个面向安全的轻型 Linux 发行版. 它不同于通常 Linux 发行版,Alpine 采用了 musl libc 和 busybox 以减小系统的体积和运行时资源消耗,但功能上比 busybox 又完善的多,因此得到开源社区越来越多的青睐. 在保持瘦身的同时,Alpine 还提供了自己的包管理工具 apk,可以通过 https://pkgs.alpinelinux.org/packages 网站上查询包信息,也可以直接通过 apk 命令直接查询和安装各种软件. Alp…
1 引言 在前面博文中,我们介绍了镜像.如果说镜像犹如面向对象中的类,本节要说的容器就是由类实例化出来的对象了,有了类才可以创建容器. 先从拉取一个官方提供的ubuntu最新镜像: $ docker pull ubuntu Using default tag: latest latest: Pulling from library/ubuntu Digest: sha256:f08638ec7ddc90065187e7eabdfac3c96e5ff0f6b2f1762cf31a4f49b5300…
docker镜像与容器的常用命令 一.概述   docker的镜像于容器是docker中两个至关重要的概念,首先给各位读者解释一下笔者对于这两个概念的理解.镜像,我们从字面意思上看,镜子里成像,我们人站在镜子面前,在镜子中会呈现一个完整的我们(包括我们的着装.表情.发型等等).那么在软件领域的镜像是指对数据按照一定的格式的一个完整的拷贝:容器是镜像运行时的实体,比如说镜像是个类,当没有被加载的时候,它是存放在我们的硬盘上的,而容器是对象,对象只有在程序运行的时候才会被创建,并且一个类可以创建N多…
上一篇我们聊到了容器,现在大家应该也知道了,没有镜像就没有容器,所以镜像对docker来说是非常重要的,关于镜像的特性和原理作为入门系列就不阐 述了,我还是通过aspnetcore的小sample去熟悉镜像的操控. 一:镜像在哪里 这个问题问到点子上了,就好像说肉好吃,那你告诉我哪里才能买的到? 1. docker官方渠道 docker官方有一个 https://hub.docker.com/ 网址,你能想到和想不到的镜像这上面都有,比如web开发者熟悉的nginx,redis,mongodb等…
这个<Docker入门系列>文档,是根据Docker官网(https://docs.docker.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指正.分为如下几个部分: 1 Docker入门:简介 2 Docker入门:安装运行 3 Docker入门:容器(Containers) 4 Docker入门:服务(Services) 5 Docker入门:Swarms 6 Docker入门:Stacks 7 Docker入门:部署app 8 Docker入门…
Docker镜像(Image)是一堆只读文件(read-only layer),容器(container)的定义和镜像(image)几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的.容器 = 镜像 + 读写层. Docker常用命令: docker version显示 Docker 版本信息docker info显示 Docker 系统信息,包括镜像和容器数docker pull <image-id>拉取或者更新指定镜像docker create <imag…
一.前言 随着互联网快速发展,以及微服务架构的流行,服务器的压力越来越大.上一篇介绍的 Docker Compose 项目,可以将多个容器捏合在一起,实现容器间的通信,比如 Web 项目对 DB.Cache 的依赖,以及微服务之间的通信等.但这还是远远不够的,Docker Compose 仅仅局限在一个 Docker 主机上,服务器的压力仍然没有得到解决,怎么办呢?集群呗!Docker Swarm 可以将多个 Docker 主机 集群成一个大型的虚拟 Docker 主机,然后在上面部署服务,当服…
Docker管理工具之官方三剑客 Docker Machine是什么鬼 从前 现在 你需要登录主机,按照主机及操作系统特有的安装以及配置步骤安装Docker,使其 能运行Docker容器. Docker Machine的产生简化了这一过程,让你可以使用一条命令在你的计算机,公有云 平台以及私有数据中心创建及管理Docker主机. Create Docker Machine主要包括三个Create过程. • 首先是Provider Create(libmachine/provider.go),此函…
docker出来也有很多年了,但用到的公司其实并不是很多,docker对传统开发是一个革命性的,几乎颠覆了之前我们传统的开发方法和部署模式,而大多 公司保守起见或不到万不得已基本上不会去变更现有模式. 一:Docker出现之前我们都有哪些困惑 1.  应用依赖多,系统参数配置杂,部署起来麻烦 这句话怎么理解? 拿真实案例说,比如你可以看一下我之前写的一篇安装elasticsearch的博文:https://www.cnblogs.com/huangxincheng/p/9120028.html…
Docker的基本结构 Docker 的三大基础组件 Docker有三个重要的概念:仓库 , 镜像 和 容器 ,它们是Docker的三大基出组件 Docker的组织结构 Docker处于操作系统和虚拟容器(lxc 和 libcontainer)之上.它会通过调用cgroup , namespaces 和 libcontainer等系统层面的接口来完成资源的分配与相互隔离: 在一台主机上,Docker Daemon为守护进程(server端),它的功能有: 它将控制所有容器的运行 监听Docker…
Docker 入门,共 3 篇,将带大家进入 Docker 的世界.首先了解 Docker 的发展历程, 然后快速掌握 Docker 的基本使用: Docker 版本及内核兼容性选择是这部分的重点内容.大家如果在生产环境中需要使用 Docker 的话,建议重点关注这一篇. 下面我们就进入第一篇的内容. Docker 在大多数人眼中几乎是容器(container)的代名词,即使是现在我也常会听到有人说“我在服务器上启动了 N 个 docker 在跑 XX 服务” 之类的话. 我们来看看为何 Doc…
1. Docker是什么? Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. Docker是个C/S的架构: server端通过Docker Daemon以守护进程进行运行, client端以bin命令形式(Docker info, Docker start)或RESTful API形式发送指令给server端 2. Docker的安装 1…
Docker介绍 Docker是指容器化技术,用于支持创建和实验Linux Container.借助Docker,你可以将容器当做重量轻.模块化的虚拟机来使用,同时,你还将获得高度的灵活性,从而实现对容器的高效创建.部署和复制,并能将其从一个环境顺利迁移至另外一个环境. Docker官方网站:http://www.docker.com Github Docker 源码:https://github.com/docker/docker 基础特性: 基于C/S架构应用程序 模块化 层与镜像版本控制…
Docker镜像的使用前两个章节,介绍了容器的相关基础知识,这章我们介绍镜像的简单使用,镜像hub里面有来自于全世界贡献的各种镜像,包括一些入门和学习练手的镜像,今天我们使用的正式其中一个用于学习练习的镜像(https://github.com/docker-training/webapp) 下载启动容器 #先把镜像pull下来docker pull training/webapp #查看当前镜像列表docker images #可以看到我们刚才下载的webappREPOSITORY TAG I…
Linux路由机制打通网络 路由机制是效率最好的 docker128上修改Docker0的网络地址,与docker130不冲突 vi /usr/lib/systemd/system/docker.service(修改配置文件) ExecStart=/usr/bin/docker daemon --bip=172.18.42.1/16 -H fd:// - H=unix:///var/run/docker.sock 重要参数:–bip=172.18.42.1/16 systemctl daemon…
docker的部署安装(Linux kernel至少3.8以上): yum install docker docker1.8安装:(下面 是两个命令) # cat >/etc/yum.repos.d/docker.repo<<-EOF [dockerrepo] name=DockerRepository baseurl=https://yum.dockerproject.org/repo/main/centos/7 enabled=1gpgcheck=1 gpgkey=https://y…
Docker简介: 多语言和框架:支持多语言和框架以及语言框架的扩展机制 多服务:开放的核心服务以及服务的扩展机制 多云和多IaaS技术:支持多种IaaS技术和多云的部署,包括公有云和私有云 Docker----------第三代Paas平台 Docker究竟是什么?dotCloud不仅支持诸如PHP.MySql等传统技术框架,还包括Node.js.MongoDB等新兴技术.基于dotCloud提供的开发工具和技术框架,你可以直接使用dotCloud的SDK 编写代码和构建业务服务,并在联网的时…
使用公共仓库 登陆官方网站:https://hub.docker.com/   注册账号和密码 在Docker hub中创建一个资源,  create  respositories,   创建后会提示如何push镜像到公共仓库 当提示: docker push dai163309889254/zabbix:tagname  时, 使用该命令push镜像 在Docker主机上面, 把需要推送的镜像命名为 dai163309889254/zabbix:latest docker tag zabbix…
一.前言 之前我们公司部署服务,就是大家都懂的那一套(安装JDK.Tomcat —> 编译好文件或者打war包上传 —> 启动Tomcat),这种部署方式一直持续了很久,带来的问题也很多: 1.繁重的发布任务.微服务一多,就要每个服务都要重启一遍,而且要是集群的话,那要启动的服务就更多了. 2.环境迁移报错.经常发生的一件事,同样的一套代码,这台服务器上就是能跑起来,换个服务器就是报错了. 3.士气低落.小公司没有正经的运维,都是让开发兼并着做这方面的工作,然后负责这块的同事怨言很多(因为这种…
一.Dockfile介绍: Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令.Docker程序将这些Dockerfile指令翻译真正的Linux命令.Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile.Docker程序将读取Dockerfile,根据指令生成定制的image.相比image这种黑盒子,Dockerfile这种显而易见的脚本更容易被使用者接…
项目进行容器化之后,配套的基础设施包括监控.编排.管理等都需要进行一并完善.这里也是自己一边学习一边进行记录. Weave Scope 的最大特点是会自动生成一张 Docker 容器地图,让我们能够直观地理解.监控和控制容器.千言万语不及一张图,先感受一下. 我这里用的是阿里云,首先下载Weave Scope并启动: curl -L git.io/scope -o /usr/local/bin/scope chmod a+x /usr/local/bin/scope scope launch 执…
基于Volume的互联 为什么需要Volume docker文件系统是分层的,下面的是全部是只读的,最上面的是可写层,容器中的进程如果修改了某个文件,比如修改了下层的某个文件,其实是在最顶层复制下层文件,进行修改,然后覆盖原来的文件,原来的文件就隐藏了. 运行时的容器是镜像叠加一个可写层 docker的存储有两种 一种是镜像, /var/lib/docker/graph 存放本地Image里的分层信息(记录了镜像有那些层,每一层的父层,每一层的大小等) 上图的GraphDB是一个数据库,存储分层…
首先我们需要知道:两个容器要能通信,必须要有属于同一个网络的网卡. 先来看下正常情况下我们的容器默认是否是能通信的,这里运行两个测试容器: docker run -it --name=bbox1 busybox docker run -it --name=bbox2 busybox 然后我们进入bbox2容器中,并ping容器bbox1: 可以发现无法ping通,这是因为容器默认的隔离原因导致的. 从 Docker 1.10 版本开始,docker daemon 实现了一个内嵌的 DNS ser…
1.新建一个WebApi项目,并添加Dockerfile文件: FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base WORKDIR /app EXPOSE FROM microsoft/dotnet:2.1-sdk AS build WORKDIR /src Copy . . RUN dotnet restore RUN dotnet build -c Release -o /app FROM build as publish RUN dot…
一.概念 Docker Compose 是官方编排项目之一,负责快速的部署分布式应用.它允许用户通过一个单独的 docker-compose.yml 模板文件(YAML格式)来定义一种相关联的应用容器为一个项目. Docker  Compose 中有两个重要的概念: 服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例.项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义. Docker Comp…
写在最前 偶然整理,翻出来14年刚开始学docker的时候的好多资料.当时docker刚刚进入国内,还有很多的问题.当时我们的思考方式很简单,docker确实是个好的工具,虽然还不成熟.但是不能因为短时间内造桥不行,就不过河了.我们的方式很简单,先造个小船划过去.由于各种条件的局限,所以很多方法真的是因陋就简,土法上马,一切就是为了抓紧落地.时代更迭.版本变迁,这其中的很多技术方案本身可能已经无法为现有的方案提供有力的帮助了.但是解决问题的思路和原理可能还能为大家提供一点参考吧.这于我自己,也是…
环境说明 两个虚拟机 操作系统Centos7 DOcker版本1.8 脚本内容: 1  4  7  10  19  27  32    33  39   -j ACCEPT 47    48  # Restart Docker daemon to use the new BRIDGE_NAME 49  service docker restart 说明: 在不同主机上执行以上脚本,REMOTE_IP和BRIDGE_ADDRESS根据实际地址进行调整. 结果图:     流程整理 1.关闭seli…
以Docker为基础完成持续集成.自动交付.自动部署: 原理: RD推送代码到git 仓库或者svn等代码服务器上面,git服务器就会通过hook通知jenkins. jenkine 克隆git代码到本地,并通过dockerFile文件进行编译 . 打包生成一个新版本的镜像并推送到仓库 ,删除当前容器 ,通过新版本镜像重新运行. 具体部署文献请参考:https://www.infoq.cn/article/WHt0wFMDRrBU-dtkh1Xp…