2019独角兽企业重金招聘Python工程师标准>>>
注意:centos 6.9上默认是安装docker早期的1.7.*版本,后续docker 分CE和EE的版本,只能安装在centos 7.*上。
centos6.9环境中,因为有系统包名冲突的原因,所以docker的包名是docker-io,而不是docker,安装命令: sudo yum install docker-io, 安装完成后,
在CentOS上安装Docker有一定的版本要求,CentOS 7.X及其以后版本&3.10以后版本。
Docker 包括三个基本概念:镜像(Image)容器(Container)仓库(Repository)
镜像(Image)——一个特殊的文件系统
容器的种类 : 一次性容器 , 持续性容器 .
一次性容器 : 作为一种工具类型的容器,运行一次实现某个或者某组功能 . 例如 : 清理系统垃圾 , 对系统进行配置 , 部署应用等. 可以类比脚本程序 .
持续性容器 : 大多数应用程序运行的模式 , 在后台运行,并提供服务 .
操作系统分为内核和用户空间。对于Linux而言,内核启动后,会挂载root文件系统为其提供用户空间支持。而Docker镜像(Image),就相当于是一个root文件系统。
Docker设计时,就充分利用Union FS的技术,将其设计为分层存储的架构。 镜像实际是由多层文件系统联合组成。
容器(Container)——镜像运行时的实体
镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等 。
容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。前面讲过镜像使用的是分层存储,容器也是如此。
容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡。因此,任何保存于容器存储层的信息都会随容器删除而丢失。
仓库(Repository)——集中存放镜像文件的地方
镜像构建完成后,可以很容易的在当前宿主上运行,但是, 如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry就是这样的服务。
一个Docker Registry中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。所以说:镜像仓库是Docker用来集中存放镜像文件的地方类似于我们之前常用的代码仓库。
通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本 。我们可以通过<仓库名>:<标签>的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以latest作为默认标签。
Registry公开服务是官方的Docker Hub ,这也是默认的Registry,并拥有大量的高质量的官方镜像,网址为:hub.docker.com/
Docker和K8S 使用的都是HTTP接口
Docker最核心的程序是Docker Engine,根据参数,它既可以作为后台daemon运行,也可以作为命令行工具使用。
我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式:
-
host模式,使用--net=host指定。
-
container模式,使用--net=container:NAME_or_ID指定。
-
none模式,使用--net=none指定。
-
bridge模式,使用--net=bridge指定,默认设置。
Docker架构
Docker使用C-S架构,其客户端同Docker Daemon进行交互,主要的工作通过daemon来完成,包括拉取镜像、编译镜像、运行容器、发布容器等。Docker client和daemon可以运行在同一个系统上,也可以通过远程方式进行访问。Docker client和daemon之间是在 socket 上通过RESTful API来进行交互的。
Docker 的核心组件包括:
Docker 客户端 - Client
Docker 服务器 - Docker daemon
Docker 镜像 - Image
Docker 仓库 - Registry
Docker 容器 - Container
Docker运行流程:
- Docker 采用的是 Client/Server 架构。客户端向服务器发送请求,服务器负责构建、运行和分发容器。客户端和服务器可以运行在同一个 Host 上,客户端也可以通过 socket 或 REST API 与远程的服务器通信。
Docker 的架构:
Docker客户端:
- 通过 docker 我们可以方便地在 Host 上构建和运行容器
Docker服务端:
- Docker daemon 运行在 Docker host 上,负责创建、运行、监控容器,构建、存储镜像
Docker镜像:
- 可将 Docker 镜像看着只读模板,通过它可以创建 Docker 容器.
例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了 Apache 或用户需要的其它应用程序。
镜像可以用来创建 Docker 容器。
Docker容器:
- Docker 容器就是 Docker 镜像的运行实例。
Docker仓库:
- Registry 是存放 Docker 镜像的仓库,Registry 分私有和公有两种。
- docker pull 命令可以从 Registry 下载镜像。
docker run 命令则是先下载镜像(如果本地没有),然后再启动容器。
Docker的应用场景都有哪些
1. 作为云主机使用
2. 作为服务使用
Docker思想
-
集装箱
-
标准化: ①运输方式、②存储方式、 ③API接口
-
隔离
Docker容器的特点
-
轻量,在一台机器上运行的多个Docker容器可以共享这台机器的操作系统内核;它们能够迅速启动,只需占用很少的计算和内存资源。镜像是通过文件系统层进行构造的,并共享一些公共文件。这样就能尽量降低磁盘用量,并能更快地下载镜像。
-
标准,Docker容器基于开放式标准,能够在所有主流Linux版本、Microsoft Windows以及包括VM、裸机服务器和云在内的任何基础设施上运行。
-
安全,Docker赋予应用的隔离性不仅限于彼此隔离,还独立于底层的基础设施。Docker默认提供最强的隔离,因此应用出现问题,也只是单个容器的问题,而不会波及到整台机器。
Docker优点
-
Docker的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现“这段代码在我机器上没问题啊”这类问题;——一致的运行环境
-
可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。——更快速的启动时间
-
避免公用的服务器,资源会容易受到其他用户的影响。——隔离性
-
善于处理集中爆发的服务器使用压力;——弹性伸缩,快速扩展
-
可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。——迁移方便
-
使用Docker可以通过定制应用镜像来实现持续集成、持续交付、部署。——持续交付和部署
Docker容器部署服务的场景
1. Web应用服务
Web应用服务是使用最广泛的一类服务,典型的架构是前端一个Tomcat + Java服务,后端MySQl数据库。
例如下图所示。
Docker容器的Web服务
2. 持续集成和持续部署
互联网行业倡导敏捷开发,持续集成部署CI/CD便是最典型的开发模式。
Docker的持续集成持续部署流程
3. 微服务架构使用
微服务架构将传统分布式服务继续拆分解耦,形成一些更小服务模块,服务模块之间独立部署升级,这些特性与容器的轻量、高效部署不谋而合。
如下图所示,每个容器里可以使用完全不同环境的镜像服务,容器启动即产生了一个独立的微服务主机节点(独立的网络IP),上层服务与下层服务之间服务发现通过环境变量注入、配置文件挂载等多种方式灵活解决,而且还可以直接将云平台提供的各种云服务与自定义的微服务整合组成一个强大的服务集群。
更重要的是,拥有如此多服务的集群环境迁移、复制也非常轻松,只需选择好各服务对应的Docker服务镜像、配置好相互之间访问地址就能很快搭建出一份完全一样的新集群。
容器优势总结:
-
敏捷的应用创建与部署:相比虚拟机镜像,容器镜像的创建更简便、更高效。
-
持续的开发、集成,以及部署:在快速回滚下提供可靠、高频的容器镜像编译和部署(基于镜像的不可变性)。
-
开发与运营的关注点分离:由于容器镜像是在编译/发布期创建的,因此整个过程与基础架构解耦。
-
跨开发、测试、产品阶段的环境稳定性:在笔记本电脑上的运行结果和在云上完全一致。
-
在云平台与OS上分发的可转移性:可以在 Ubuntu、RHEL、CoreOS、预置系统、Google 容器引擎,乃至其它各类平台上运行。
-
以应用为核心的管理:从在虚拟硬件上运行系统,到在利用逻辑资源的系统上运行程序,从而提升了系统的抽象层级。
-
松散耦联、分布式、弹性、无拘束的微服务:整个应用被分散为更小、更独立的模块,并且这些模块可以被动态地部署和管理,而不再是存储在大型的单用途机器上的臃肿的单一应用栈。
-
资源隔离:增加程序表现的可预见性。
-
资源利用率:高效且密集。
容器 VS 虚拟机
两者对比图
传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。
容器与虚拟机 (VM) 总结
容器与虚拟机(VM)两者是可以共存的
就我而言,对于两者无所谓谁会取代谁,而是两者可以和谐共存。
一、安装docker的先决条件:
1.必须是64位CPU架构的计算机,Docker目前不支持32位CPU;
2.运行Linux3.8或更高版本内核,CentOS时内核必不小于3.10;
3.内核必须支持一种合适的存储驱动,可以是Device Manager、AUFS、vfs、btrfs、以及默认的驱动Device Mapper中的一个;
4.内核必须支持并开启cgroup和命名空间namespace功能。
安装分两种比较常见的情况:一种是Ubuntu环境下安装,一种是CentOS环境下进行安装,Ubuntu环境下的安装参见《第一本Docker书》,书中有详细的步骤,此处
只讨论CentOS环境下的安装。本文用的版本为CentOS7.1。
docker官方安装文档:https://docs.docker.com/install/linux/docker-ce/centos/#install-docker-ce-1
二、检查前提条件
1.内核
通过uname命令来检查内核版本信息。
2.检查Device Mapper
ls -l /sys/class/misc/device-mapper
3、首先安装了yum-utils,它提供了yum-config-manager管理工具,然后安装了最新稳定版本的Repository文件,最后更新yum的package索引。
[root@localhost-01 ~ ]#
yum install -y yum-utils
三、安装docker
yum安装
1)使用root权限登录系统
2)更新系统包到最新
yum -y update
3)添加yum仓库
# cat >/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
完成后如下:
4)安装docker包
yum install -y docker-engine
yum install -y docker-selinux
在使用现成的安装包安装的时候selinux的安装一定要在docker-engine之前。
yum list installed | grep docker
5)启动docker
systemctl start docker.service
6)查看一下当前系统上的进程,执行ps -ef | grep docker确认Docker已经启动:
7)验证docker已经正常安装
docker run hello-world
7)配置docker开机自启动
systemctl enable docker.service
四、使用yum卸载docker
1.列出安装的软件包
yum list installed | grep docker
2.移除软件包
yum -y remove docker-engine.x86_64
上面的命令不会删除镜像、容器,卷组和用户自配置文件。
3.删除所有镜像、容器和组
rm -rf /var/lib/docker
五、docker命令使用
5.1 docker查看信息#docker info
5.2 docker查看镜像# docker images
5.3 docker 列出run的容器:#docker ps -a
5.4 pull docker镜像:#docker pull xxxxx
5.5 运行docker 容器
docker run xxxxx
docker run -p 8080:80 --name 自定义名称 -it 镜像名称 /bin/bash
5.6 退出docker 容器但不停止运行:Ctrl+P+Q
5.7 停止docker 容器运行:#docker stop CONTAINERID
5.8 删除docker 容器#docker rm CONTAINERID
5.9 删除docker镜像:#docker rmi imageID
5.10 启动docker容器:#docker start CONTAINERID
Docker的基本运行机制如下所示:
- Docker Client连接到Docker daemon
- Docker daemon从Docker Hub上下载名称为hello-world的Image
- Docker daemon基于这个Image创建了一个新的Container,并运行应用程序,输出“Hello from Docker!”
- Docker daemon将结果输出到Docker Client,也就是我们的终端上
注意:
如果centos 7已经使用yum 安装docker-ce,那么要先卸载老版本
1、已经安装了老版本需要卸载老版本docker
- yum remove docker docker-common container-selinux docker-selinux docker-engine
2、增加docker-ce的yum源,使用yum-utils来管理yum源
2.1安装yum-utils
- yum install yum-utils
2.2添加yum源
- yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3、安装docker-ce
- yum install docker-ce
验证: docker run hello-world 即是验证docker是否安装成功的命令
100个容器周边项目
容器技术的生态圈
1. 容器引擎
容器引擎是容器集群生态圈的核心部分,它是与内核Namespace和CGroup等功能直接交互,并提供相应API使得外部能够与之集成的工具或服务。Docker无疑是目前为止最成功、广泛最使用的容器引擎之一。实际上从1.12版本以后,Docker的容器化功能已经由独立的项目RunC来实现,但Docker仍作为一个开源产品为用户提供完整的容器化解决方案。此外,社区中还有许多容器引擎项目,例如:
001. Docker:https://www.docker.com
002. Rkt:https://coreos.com/rkt
003. Systemd-nspawn:https://www.freedesktop.org/wiki/Software/systemd
004. Hyper:https://hyper.sh
005. Garden:https://github.com/cloudfoundry/garden
006. LXC:https://linuxcontainers.org
007. Photon:https://github.com/vmware/photon
008. Vagga:https://github.com/tailhook/vagga
009. gVisor:https://github.com/google/gvisor
010. Pouch:https://github.com/alibaba/pouch
这些项目只是众多支持不同平台和具有不同特性的容器引擎的冰山一角。例如Google曾经主导的lmctfy(http://lmctfy.io/) 项目也是个十分优秀的容器引擎,然而该项目自2015年以后就不再被维护了。而最近Google刚刚开源的gVisor则是该领域中的新秀。另外值得一说的是,Hyper采用虚拟机的方式对环境进行隔离,并不是一种基于容器的隔离方案,但它能很好地与Docker或Kubernetes等容器集群技术相结合,取代其环境隔离的功能,因此也归属此列。
2. 监控和数据收集
由于容器基于内核的特殊隔离方式,对容器性能和状态的监控与虚拟机存在一些差别。传统的虚拟机监控工具,例如Nagios和Zabbix等,对容器监控的原生支持并不十分易用。而一些新起的开源项目对这种场景具有更友好的体验,例如:
011. cAdvisor:https://github.com/google/cadvisor
012. Sysdig:http://sysdig.org
013. Prometheus:https://prometheus.io
014. TICK-Stack:https://influxdata.com
015. Docker-Alertd:https://github.com/deltaskelta/docker-alertd
016. Grafana:https://grafana.com
其中的TICK-Stack指的是Influxdata推出的Telegraf、InfluxDB、Chronograf、Kapacitor四款开源工具,不过从1.0以后,这些工具在开源版基础上提供了企业版本,后者提供了例如高可用、云端存储等企业级功能。
3. 容器管理和界面工具
可视化是用户友好性十分重要的一部分,Shipyard和Decking是Docker早期时十分受欢迎的可视化工具,之后Docker也收购了Kitematic作为官方的容器管理UI。但随着容器应用集群化,早期的UI工具不再流行,一些针对特定集群平台定制的新型管理UI开始出现。例如Kubernetes官方推出了Dashboard项目用于可视化的管理集群,Cockpit则是红帽公司推出的Kubernetes集群管理界面。以下是其中一些开源的容器管理UI项目:
017. Kitematic:https://kitematic.com
018. DockerUI:https://github.com/crosbymichael/dockerui
019. Panamax:http://panamax.io
020. Rapid Dashboard:https://github.com/ozlerhakan/rapid
021. Cockpit:http://cockpit-project.org
022. Portainer:https://www.portainer.io
023. Shipyard:http://shipyard-project.com
024. Seagull:https://github.com/tobegit3hub/seagull
025. Dockeron:https://github.com/dockeron/dockeron
026. DockStation:https://dockstation.io
4. 基础设施集成
容器集群的实施是需要以硬件基础设施作为依托的,有些辅助工具能够简化这个过程。这些项目往往与具体的底层平台相关,例如:
027. Nova-docker:https://github.com/stackforge/nova-docker
028. Magnum:https://github.com/openstack/magnum
029. Machine:https://docs.docker.com/machine
030. Boot2Docker:https://github.com/boot2docker/boot2docker
031. Clocker:https://github.com/brooklyncentral/clocker
032. MaestroNG:https://github.com/signalfuse/maestro-ng
Nova-docker和Magnum都是在OpenStack集成容器集群的项目,不过目前OpenStack官方正在尝试通过让Kubernetes直接创建虚拟机的方式来统一它在IaaS层和CaaS层的差异,其中的Nova-docker已经被废弃了。Machine是Docker公司推出的基础设施管理工具,Boot2Docker曾经是在Windows和Mac上使用Docker的官方方案,但随着Docker 1.12版本发布了多种操作系统的发行版后,已经不再被推荐使用了。
5. 编排和调度
编排和调度是容器集群的基本功能,因此选择编排和调度工具实际上就是在选择容器集群的方案。以下是一些开源的容器任务编排调度工具:
033. SwarmKit:https://github.com/docker/swarmkit
034. Kubernetes:http://kubernetes.io
035. Marathon:https://github.com/mesosphere/marathon
036. Rancher:http://www.rancher.io
037. Nomad:https://github.com/hashicorp/nomad
038. OpenShift:https://www.openshift.com
039. Crane:https://github.com/michaelsauter/crane
040. Nebula:https://github.com/nebula-orchestrator
041. GearD:http://openshift.github.io/geard
其中的OpenShift主要是指其3.0之后的发行版,它是红帽公司基于Kubernetes二次开发的集持续集成和交付于一体的容器集群方案,具有开源和商业两个版本。
6. 容器镜像仓库
镜像仓库是基于容器的在软件发布流程中必要的组成部分,Docker开源了其镜像仓库的最小实现,但对于企业级应用来说,它缺少了高可用、权限控制、管理界面等必要功能。Docker Hub和国内的许多容器云平台都提供了公有云的企业级仓库服务,社区中也有一些容器仓库的开源或免费的实现,例如:
042. Repository:https://github.com/docker/distribution
043. Nexus:http://www.sonatype.org/nexus
044. Habor:http://vmware.github.io/harbor
045. Portus:https://github.com/SUSE/Portus
046. Docker Registry UI:https://github.com/atcol/docker-registry-ui
047. Dragonfly:https://github.com/alibaba/Dragonfly
其中的Nexus是一种通用的软件包仓库解决方案,支持包括Maven、NPM、PIP、RPM等许多主流打包格式的分发和管理,它是在3.0以后的版本中开始支持作为Docker镜像仓库的。VMWare推出的Habor是目前相对常用的企业级开源Docker仓库解决方案。Portus和Docker Registry UI是基于官方Repository镜像仓库的界面化管理工具。Dragonfly是一款P2P协议的镜像分发工具,并非直接提供镜像存储功能,但也属于仓库辅助类的工具。
7. 服务发现和容器域名服务
服务发现和域名服务实际上是微服务架构和容器集群的调度工具所需的组件,它们在容器集群中十分常见,也是这个生态圈中举足轻重的一部分,以下是其中一些在实际工程中被提及较多的工具:
048. Etcd:https://github.com/coreos/etcd
049. Consul:http://www.consul.io
050. ZooKeeper:https://zookeeper.apache.org
051. Eureka:https://github.com/Netflix/eureka
052. Traefik:https://traefik.io
053. Muguet:https://github.com/mattallty/muguet
054. Registrator:https://github.com/gliderlabs/registrator
055. SkyDNS:https://github.com/skynetservices/skydns
8. 容器日志收集处理
和容器集群的监控一样,收集容器中的服务运行日志与虚拟机中的方式同样存在许多差异。目前Docker直接通过插件能够支持的日志收集工具包括Rsyslog、Splunk和Fluentd,虽然FileBeat不在此列,但由于其小巧便捷的部署机制,也得到了许多用户青睐。一些过去用于虚拟机的日志收集器,比如LogStash或Flume,同样能够使用与容器中的服务,但它们都不再是首选的方案。
056. Splunk:https://www.splunk.com
057. Fluentd:https://www.fluentd.org
058. ElasticStack:https://www.elastic.co
059. Flume:https://flume.apache.org
060. Rsyslog:https://www.rsyslog.com/
ElasticStack是Beats、Logstash、ElasticSearch和Kibana四款开源项目的统称,这是一套十分流行的日志汇聚、处理、存储和展示的工具组合。其中的ElasticSearch和Kibana也可以与Fluentd配合,形成端到端日志处理方案。另外值得指出的是,Splunk并不是开源或免费的,但它在企业级日志处理方案中的应用十分广泛。
9. 容器相关的系统发行版
有些Linux发行版是为容器运行而优化的,Atomic和ClearLinux系统都属于此类。另一些Linux发行版在设计之初就充分地将容器机制融入了系统的架构理念,例如CoreOS。有的系统甚至将Docker作为系统的核心服务来管理其他用户进程,例如RancherOS和Hyper容器引擎所使用的操作系统。类似的项目还有许多,它们都是架设容器集群时十分称手的基础设施,例如:
061. Container Linux:http://coreos.com
062. Project Atomic:http://www.projectatomic.io
063. RancherOS:http://rancher.com/rancher-os
064. ClearLinux:https://clearlinux.org
065. Photon OS:https://vmware.github.io/photon
066. CargoOS:https://cargos.io
067. SmartOS:https://www.joyent.com/smartos
10. 容器平台
容器平台是大规模容器运用的产物,它通常会与持续集成、持续交付的工具结合,成为连接上层应用服务和底层基础设施、帮助使用者快速实现从代码提交到产品上线全过程的端到端交付过程。以下是其中一些相关的开源项目:
068. Deis:https://deis.com
069. Flynn:http://flynn.io
070. Dokku:https://github.com/progrium/dokku
071. Fabric8:http://fabric8.io
072. Kel:http://www.kelproject.com
073. Nanobox:https://nanobox.io
074. Tsuru:https://tsuru.io
除了这些开源的容器平台服务实现之外,互联网上还有许多在线按量付费的容器即服务平台,它们也是整个容器集群生态的一部分。
11. 容器网络
容器技术在解决环境隔离和配额问题的同时,也引入了网络层面的复杂性。由于使用了Network Namespace,每个容器都可以获得独立的IP地址,这对于单个主机的情况并无大碍,但对于容器集群的情况,IP地址的分配和互联就成为了新的问题。因此在设计容器集群时,通常需要专门为网络的连接方式加以考虑。常用的开源方案例如:
075. Libnetwork:https://github.com/docker/libnetwork
076. Flannel:https://github.com/coreos/flannel
077. Calico:http://www.projectcalico.org
078. Weave:https://github.com/zettio/weave
079. Romana:http://romana.io
080. Canal:https://github.com/projectcalico/canal
081. Open vSwitch:http://openvswitch.org
082. Pipework:https://github.com/jpetazzo/pipework
这些网络方案大多采用了七层网络的Overlay Network方式,也就是在容器之间通信的网络包上封装了用于路由寻址的额外包头,这种方式会导致网络通信效率的下降,具体影响程度与所封装的额外数据大小有关。而Calico采用修改每个主机节点上的IPtables和路由表规则实现容器间数据路由和访问控制,属于三层网络的方式,这种方案在节点规模不太大(最多几百个节点)时的效率优势十分明显,是一种比较受推荐的容器网络工具。除了这些较常用的方案外,一些条件允许的企业也会结合MacVLAN等二层网络方案实现容器的互联,以获得更好的网络性能。
12. 容器安全
容器安全性问题的根源在于容器和宿主机共用内核,因此受攻击的面特别大。另外,如果容器里的应用导致Linux内核崩溃,整个宿主机系统都会崩溃,这一点与虚拟机是不同的。此外,镜像的安全性也是容器安全的一部分,如何保障用户下载的镜像是可信的、未被篡改过的,以及如何保证镜像中不会意外包含具有大量漏洞的老旧软件都是需要考虑的问题。目前这些安全课题主要在一些企业级应用中引起较多重视,下面是一些相关的开源工具和项目:
083. Notary:https://github.com/docker/notary
084. Clair:https://github.com/coreos/clair
085. AppArmor:http://wiki.apparmor.net/index.php/Main_Page
086. SELinux:https://selinuxproject.org
087. Twistlock:https://www.twistlock.com
088. OpenSCAP:https://github.com/OpenSCAP/container-compliance
13. 容器数据持久化
容器是一种不可变的基础设施,容器的数据应该通过Volume的方式保存到外部的介质上,容器持久化存储本质上就是要解决如何简便地将外部存储挂载到容器中使用的问题。Docker在1.9版本后提供了存储的插件,这也为许多存储方案提供了便利,以下列举几个例子:
089. Flocker :https://github.com/clusterhq/flocker
090. Convoy:https://github.com/rancher/convoy
091. REX-Ray:https://github.com/codedellemc/rexray
092. Netshare:https://github.com/ContainX/docker-volume-netshare
093. OpenStorage:https://github.com/libopenstorage/openstorage
其中Ceph是通用的网络存储工具,同时提供块存储和对象存储能力,对容器化场景下的应用数据持久化具有良好的支持。
14. 容器相关开发流程工具
容器的镜像可以被看作一种新型的应用打包方式,因此容器常常与软件的开发和持续集成、持续交付流程相结合,提供不同环境一致性部署能力。以下是一些利用容器改善软件开发和交付的工具或平台:
094. Drone.io:https://drone.io
095. Shippable:http://shippable.com
096. Cyclone:https://github.com/caicloud/cyclone
097. Screwdriver:http://screwdriver.cd
098. WatchTower:https://github.com/v2tec/watchtower
099. Wercker:http://wercker.com
100. Totem:http://totem.github.io
Docker CE 的安装请参考官方文档:
-
MacOS:https://docs.docker.com/docker-for-mac/install/
-
Windows:https://docs.docker.com/docker-for-windows/install/
-
Ubuntu:https://docs.docker.com/install/linux/docker-ce/ubuntu/
-
Debian:https://docs.docker.com/install/linux/docker-ce/debian/
-
CentOS:https://docs.docker.com/install/linux/docker-ce/centos/
-
Fedora:https://docs.docker.com/install/linux/docker-ce/fedora/
-
其他 Linux 发行版:https://docs.docker.com/install/linux/docker-ce/binaries/
常见问题 :
1、容器的监控工具有哪些?采集的日志要如何处理?
答 :目前容器主流的监控工具主要有以下几种 :ps/top/stats、Sysdig、Weave Scope、cAdvisor和Prometheus以及掏系使用的tsar.
Docker ps/top/stats最适合快速了解容器运行状态,是最简单的排查方式。
Sysdig提供了的丰富的分析和挖掘功能。
cAdvisor一般不单独使用,通常作为其他工具的数据收集器
Weave Scope流畅简洁的web操控界面是其最大亮点。
Prometheus的数据模型和构架决定了它的扩展性和可插拔性又是非常好的.
Tsar淘宝开源的监控数据收集工具 ,可以部署在宿主机或者容器内部.
监控系统的选择,并不是一道单选题 , 应该根据需要和实际情况搭配组合,优势互补.
采集到的日志数据 ,可以放在本地 ,然后输出到统一日志平台 , 在日志平台对日志进行分析 . 如果集群特别大的情况下.还需要采取区域自治的方式 . 先在每个区域做预处理,然后再输入到日志平台.
2、基于容器做CI/CD的优势
1. 屏蔽底层操作系统和环境变量差异,提高开发效率
2. 个性化结构目录和环境变量 , 而不影响主机 .
3. 容器平台自带的多副本机制和容灾机柜, 能够减小持续部署阶段影响业务系统的概率.
4. 部署以后可以弹性伸缩 ,应对业务高峰期
5. 容器资源利用率高 , 便于搭建开发 ,测试和预发等环境.
3、哪些应用适合使用容器部署
(1) .自研系统 (代码可控 , 便以改造)
(1) . 非核心 ,非实时系统 ( 无状态---有状态)
(1) . 非核心系统 (无状态---有状态)
(1) . 核心系统 (无状态 --- 有状态)
(1) .逐步推广
4、
5
参考链接 : https://blog.csdn.net/qq_35485753/article/details/79508489
Docker入门吐血总结 : https://www.cnblogs.com/ECJTUACM-873284962/p/9789130.html
学习链接:
相关资料:
1、Docker入门教程 http://dockone.io/article/111
2、Docker_百度百科 http://baike.baidu.com/view/11854949.htm
3、史上最全Docker资料集粹 http://special.csdncms.csdn.net/BeDocker/
4、Docker - 话题精华 - 知乎 http://www.zhihu.com/topic/19950993/top-answers
5、docker 简明教程 | 简果网 http://www.simapple.com/docker-tutorial
6、如何使用Dockerfile构建镜像 http://blog.csdn.net/qinyushuang/article/details/43342553
7、Dockerfile reference - Docker https://docs.docker.com/engine/reference/builder/
Docker 教程 : https://www.w3cschool.cn/docker/
Docker 教程 : http://edu.jb51.net/docker/docker-install-nginx.html
Docker 教程 : http://www.runoob.com/docker/docker-tutorial.html
Docker 中文教程 : http://www.voidcn.com/course/project/wqighs
Docker —— 从入门到实践 : http://www.voidcn.com/course/project/rspdjl
Docker 实践 : http://www.voidcn.com/course/project/agyzsa
Docker 系列 : https://blog.csdn.net/huwh_/article/category/6467170
https://blog.csdn.net/u012460749?t=1
脚本之家 docker 系列 : https://www.jb51.net/list/list_256_1.htm
(易百教程) Docker教程: https://www.yiibai.com/docker/
阿里云 docker 系列 : https://yq.aliyun.com/search/articles?q=docker
W3C school docker 教程 : https://www.w3cschool.cn/docker/
Docker从入门到实践 : https://www.w3cschool.cn/reqsgr/
Docker简单使用指南 : https://www.w3cschool.cn/use_docker/
Docker实践 : https://www.w3cschool.cn/kxqhmy/
docker技术剖析 : https://www.w3cschool.cn/ikjzm/
Docker在PHP项目开发环境中的应用 : Docker在PHP项目开发环境中的应用
Docker 1.10 (英语版): https://www.w3cschool.cn/doc_docker_1_10/
Docker 1.11 (英语版) : https://www.w3cschool.cn/doc_docker_1_11/
简书 Docker容器 (859篇):https://www.jianshu.com/c/fe5f5bed05c0
Awesome Docker (859篇) : https://www.jianshu.com/c/4d0facaa9d81
Docker 中文社区 :http://www.docker.org.cn/index.mhtml
【技术干货】Docker精华学习资料集锦,老司机快上车 : https://mp.weixin.qq.com/s/QUOhbAZ1dIjvjOBRf4H-jg
Kubernetes 集群日志管理 - 每天5分钟玩转 Docker 容器技术(180篇) : https://www.cnblogs.com/CloudMan6/tag/Docker/
Docker: CPU我劝你善良 : https://mp.weixin.qq.com/s/TyUFl0w9YnMVEhvg79vfPQ
docker的第一阶段总结 : https://mp.weixin.qq.com/s/HQRnfUfVXrEMTclLYTYuWg
https://blog.csdn.net/xiaochendefendoushi/article/details/80979905
Dockerfile构建LNMP分离环境部署wordpress 荐 : http://blog.51cto.com/xiaoluoge/1902501
Docker compose基于容器编排构建实践 荐 : http://blog.51cto.com/xiaoluoge/1902816
使用Docker swarm构建wordpress集群 : http://blog.51cto.com/xiaoluoge/1920377
Docker compose v3版本构建跨主机容器编排构建wordpress集群 : http://blog.51cto.com/xiaoluoge/1922134
Docker基础之一: Docker架构
https://yq.aliyun.com/articles/130
Docker基础之二: Linux快速入门
https://yq.aliyun.com/articles/131
Docker基础之三: 安装docker+HelloWorld
https://yq.aliyun.com/articles/132
Docker基础之四: Docker入门
https://yq.aliyun.com/articles/133
Docker基础之五: 使用Docker容器
https://yq.aliyun.com/articles/134
Docker基础之六: Docker基础命令
https://yq.aliyun.com/articles/135
Docker基础之七: 镜像操作
https://yq.aliyun.com/articles/136
Docker基础之八: 容器的网络
https://yq.aliyun.com/articles/137
Docker基础之九: 管理容器的数据
https://yq.aliyun.com/articles/138
Docker基础之十: 存储镜像到Docker Hub
https://yq.aliyun.com/articles/139
Docker基础之十一: 镜像操作(Dockerfile)
https://yq.aliyun.com/articles/140
Centos6.x、7.x安装docker:https://mp.weixin.qq.com/s/mYl_ndVCRzO4yel1oGOhuw
Kubernetes-基于Dockerfile构建Docker镜像实践:http://dockone.io/article/5998
docker-registry的定制和性能分析:http://dockone.io/article/6109
docker 搭建本地私有仓库:https://mp.weixin.qq.com/s/XT4VxhYTC_SJsV-r92RZUg
Docker在企业中持续交付/部署类型:https://mp.weixin.qq.com/s?__biz=MzAwNTM5Njk3Mw==&mid=2247484130&idx=1&sn=72748e962663f55033641098010d95bb&chksm=9b1c0260ac6b8b76ff05184223c79de5c619566dbcb1572f50d0477a68281cfcd255d6b1f4d6&scene=21#wechat_redirect
Docker构建企业级CI(持续集成)/CD:http://www.cnblogs.com/wintersun/p/6258900.html
云端基于Docker的微服务与持续交付实践:https://mp.weixin.qq.com/s?__biz=MzAwNTM5Njk3Mw==&mid=2247483948&idx=1&sn=7ab5c000840e063e143357f3cfc564e4&chksm=9b1c02aeac6b8bb87afb64c999beef982daa18d450c40a1560e12e0895ef9ee26fb30954a4d5&scene=21#wechat_redirect
Docker容器云平台在58同城的实践:https://mp.weixin.qq.com/s?__biz=MzAwNTM5Njk3Mw==&mid=2247483794&idx=1&sn=30060c6f430c0725852ff2f7c528f646&chksm=9b1c0110ac6b8806792c378481522dd93739c7babca68a7002ddf4a60a2526e2fcf44d7b1dc3&scene=21#wechat_redirect
docker的15个小tip https://mp.weixin.qq.com/s/D42fsjCUdpczWt02_Hx7lA
CentOS中部署Docker并配置Nginx:https://mp.weixin.qq.com/s/viYkXhUY3rSQxGR1UVgfoA
Docker从入门到飞升:基础配置安装:https://mp.weixin.qq.com/s/U-SZiTYBJ84NNENNVM4UzA
Docker 入门实战-ssh连接容器:https://mp.weixin.qq.com/s/stCuGxK3VSVh8_ihPp4IYA
推荐一位大咖:https://www.cnblogs.com/zlslch/p/7610572.html
Docker减肥小记:https://mp.weixin.qq.com/s/Q_HHa2kFrskhKf0e1incag
十一条 Docker 守则:https://mp.weixin.qq.com/s/h69P9QHrqO7Lpl1uhbW7aQ
Ubuntu上安装Docker:https://mp.weixin.qq.com/s/uVnLhi-QClyhP8boq0a7Cw
https://mp.weixin.qq.com/s/YPLnTF_jh8xahZ-uLffSkw
Docker 入门教程:https://mp.weixin.qq.com/s/S64K5cIONsJ6MwptBaMcfg
docker安装mysql 5.7:https://mp.weixin.qq.com/s/aZ59oxA0au4QjLRhakD4nQ
Docker的概念:https://mp.weixin.qq.com/s/6dmGa6IwWVZfSCWmnnuq3g
官方文档:
https://docs.docker.com/engine/reference/commandline/build/
https://docs.docker.com/engine/reference/builder/#parser-directives
https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#dockerfile-instructions
docker相关文件:http://dockone.io/question/1516
http://dockone.io/search/q-ZG9ja2Vy#all
http://dbaplus.cn/index.php?m=content&c=index&a=lists&catid=55&word=docker点击链接即可查看“Docker”相关内容
深入浅出”来解读Docker网络核心原理:https://mp.weixin.qq.com/s/H8GRaJUZfys3GYs7WP2Qag
https://blog.csdn.net/column/details/docker.html docker学习手册
docker镜像制作之Dockerfile文件---hadooop伪分布式:http://blog.csdn.net/xuguokun1986/article/details/52926638
Zabbix实现Docker监控的全自动注册:https://mp.weixin.qq.com/s/lvWt0C-1QjhOfR6FWJMEOQ
Docker 从入门到实践:http://mp.weixin.qq.com/s/vDDIqsmmWpRq436Cwex5OA
利用ELK搭建Docker容器化应用日志中心:http://mp.weixin.qq.com/s/ZuNi_JT96brg2dl1QxhFpQ
容器镜像仓库之选:企业级容器registry Harbor实践(上):http://mp.weixin.qq.com/s/tJ2GqpcWYWGhRA68LyA5vA
容器技术演化史:http://mp.weixin.qq.com/s/wwwB8OHQmbwqmKKE8Lyv-w
把docker镜像当作桌面系统来用:http://mp.weixin.qq.com/s/1nxvwx3A2JudulQyRz1OaA
互动 | Docker相关产品,你还知道什么?:http://mp.weixin.qq.com/s/8r7XszusLnS14C1jQbvGrQ
docker-machine安装大法!:http://mp.weixin.qq.com/s/FquD05I2-AHjzO8ooWMkPg
1024程序员节献礼 | 精通Docker的50个必备教程、工具、资源:http://mp.weixin.qq.com/s/m1FDXBAnKcgxM-vKwk8usQ
(ubuntu)如何优雅使用Docker?请收下这15个小技巧。: https://mp.weixin.qq.com/s/O8xsY0xOT0mVocJoPVfR-Q
Docker 最简进阶 (sudo):https://blog.csdn.net/qq_35485753/article/details/79508134
Docker教程(5)安装 Nginx(方式一:官方): https://blog.csdn.net/liupeifeng3514/article/details/80413311
Docker教程(4)Dockerfile 文件详解 :https://blog.csdn.net/liupeifeng3514/article/details/80412163
Docker教程(3)理解Docker架构 : https://blog.csdn.net/liupeifeng3514/article/details/80404055
Docker : https://blog.csdn.net/chdhust/article/category/2449245
Docker 容器中 PID 1 导致的 zombie 进程 :https://ericfu.me/docker-pid-1-process-and-zombie-process/
解决本地 docker/minikube 没有权限拉取 AWS 的镜像 : https://ericfu.me/solve-unauthorized-pull-aws-docker-image/
服务器Docker容器化笔记 : https://ericfu.me/debian-server-docker-config/
Golang 编译最小化的 Docker Image : https://ericfu.me/golang-build-minimal-docker-image/
精简Docker镜像的五种通用方法 : https://mp.weixin.qq.com/s/tMVK62zggVwaqfPsiYGaBg
Docker的网络(三) : https://juejin.im/post/5b6c26946fb9a04fbf273c66
Docker网络详解 : https://mp.weixin.qq.com/s/lY_Kkmk1e8zNaBlXJGYobw
使用 Dockerfile 定制镜像 : https://juejin.im/post/5b22730be51d45589b1a5cf1
dockerfile语法小解说(二) : https://juejin.im/post/5b6c0e275188251af53e0cc5
Docker的持久化存储和数据共享 : https://juejin.im/post/5b6d4439f265da0f800e0d5a
记一次Docker/Kubernetes上无法解释的连接超时原因探寻之旅 : https://mp.weixin.qq.com/s/y1b7hh8w5tdnjqF6gtVL-g
如何用Docker运行Qtum节点 : https://juejin.im/post/5b4c366d5188251b3c3b1b9e
创建的docker容器 : https://blog.csdn.net/hxpjava1/article/details/78406080
Docker入门教程 : https://mp.weixin.qq.com/s/x7YW2QzTTvVgHFNwUw2d-g
docker第一章:docker核心概念及centos6下安装 : https://www.cnblogs.com/liang-wei/p/6905268.html
Docker第二章:docker基础1--镜像,容器&仓库 : https://www.cnblogs.com/liang-wei/p/6909829.html
脚本之家 : Docker — 从入门到实践 :http://shouce.jb51.net/docker_practice/
Docker 存储驱动详细介绍 : https://www.jb51.net/article/95842.htm
详解Docker的持久化存储和数据共享 : https://www.jb51.net/article/145703.htm
Docker aufs存储驱动layer、diff、mnt目录的区别介绍 :https://www.jb51.net/article/111707.htm
利用docker搭建LAMP运行环境教程详解 : https://www.jb51.net/article/95034.htm
Docker daemon 无法启动: does not match with stored UUID错误解决办法 : https://www.jb51.net/article/96460.htm
搭建一个私有的Docker registry教程 : https://www.jb51.net/article/91833.htm
docker容器中crontab无法正常运行解决方案 : https://www.jb51.net/article/102945.htm
centos7使用docker部署gitlab-ce-zh应用详解 :
centos7使用docker部署gitlab-ce-zh应用详解
手把手教你玩转docker-elk : https://www.jianshu.com/p/08297b9a4763
从docker-ELKa谈一下docker化的思路 : https://www.jianshu.com/p/9492e39ca71d
Docker部署Django项目 : https://blog.ansheng.me/article/docker-deploy-django
详解基于Harbor搭建Docker私有镜像仓库 : https://www.jb51.net/article/130725.htm
Docker-compose的安装和设定详细步骤 : https://www.jb51.net/article/108954.htm
局域网内部署 Docker Registry : https://www.jianshu.com/p/22b83717916f
Centos7 & Docker & Jenkins & ASP.NET Core 2.0 自动化发布和部署 : https://www.jianshu.com/p/873ae86e4e43
Docker快速验证tomcat单机多实例方案 : https://www.jianshu.com/p/d432a0001046
SalesforceIQ的Docker之旅:从持续集成到完全Docker化 : https://www.jianshu.com/p/587fd25615c7
【Docker实践精粹】Yelp | 构建一个Production-Ready的PaaS平台 : https://www.jianshu.com/p/51efeba4e159
在 Docker 中完整部署 Web 应用 : https://www.jianshu.com/p/7869aff7db37
Docker的性能损耗:以基因组分析流程为例 : https://www.jianshu.com/p/ad5bc1874976
我要上头条:Docker集群管理之Docker Compose : https://www.jianshu.com/p/17191697e6c3
我要上头条:Docker集群管理之Docker Machine : https://www.jianshu.com/p/1daf36dfd270
原 docker dockerfile 制作 ssh : https://blog.csdn.net/jcxch/article/details/50457662
原 docker 制作Dockerfile的SSH服务 :https://blog.csdn.net/jcxch/article/details/50452448
docker集群存储软件etcd安装 荐 : http://blog.51cto.com/dl528888/1623746
用Docker玩转Ceph集群及对象存储 : https://www.jianshu.com/p/6c78d4615e63
原 verynginx在centos下的docker容器制作 : https://blog.csdn.net/u012402276/article/details/58687289
原 CentOS下的Docker容器-
原 CentOS 7.2 基于Docker实现MySQL主从架构 : https://blog.csdn.net/sunnyfg/article/details/80655823
原 Docker容器查看ip地址 : https://blog.csdn.net/sunnyfg/article/details/80611056
原 Docker 不能使用systemctl 的问题 : https://blog.csdn.net/sunnyfg/article/details/80610868
CentOS7安装部署Shipyard管理系统(亲测可用) : http://blog.51cto.com/zlyang/2052795
教你打包自己的专属docker镜像 : http://blog.51cto.com/zlyang/1936663
Docker 故障device or resource busy : https://blog.csdn.net/XiaoXiao__cc/article/details/82387999
Docker的四种网络模式 : https://blog.csdn.net/XiaoXiao__cc/article/details/81663131
使用 Docker 搭建 Java Web 运行环境 : http://blog.51cto.com/13954634/2173535
docker第一章:docker核心概念及centos6下安装 : https://www.cnblogs.com/liang-wei/p/6905268.html
Docker第二章:docker基础1--镜像,容器&仓库 : https://www.cnblogs.com/liang-wei/p/6909829.html
转 两种方式创建你自己的 Docker 基本映像 : https://blog.csdn.net/jcxch/article/details/50418409
转 阿里云Docker镜像库 : https://blog.csdn.net/jcxch/article/details/50385694
CentOS7离线安装docker问题解决 : http://blog.51cto.com/ygqygq2/1964232
CentOS7添加en_US.UTF-8字符集 : http://blog.51cto.com/ygqygq2/1949109
Docker-容器服务 Container Service04(构建镜像+仓库配置) :http://blog.51cto.com/qiuyt/2160843
大话Docker(六):AUFS : https://www.jianshu.com/p/7765762260ff
大话Docker(五):Linux Namespace(下) : https://www.jianshu.com/p/1f06ade2e37c
大话Docker(四):Linux Namespace(上) : https://www.jianshu.com/p/9f59f8b58a65
大话Docker(三):Docker 和 Google Borg的渊源 : https://www.jianshu.com/p/b1c1de3d1912
大话Docker(二):Device Mapper : https://www.jianshu.com/p/01a938464bb6
大话Docker(一):Docker核心技术预览 : https://www.jianshu.com/p/f83bdee613a1
Centos7 & Docker & Jenkins & ASP.NET Core 2.0 自动化发布和部署 : https://www.jianshu.com/p/873ae86e4e43
Docker(一):Docker入门教程 : https://www.cnblogs.com/ityouknow/p/8520296.html
Docker(二):Dockerfile 使用介绍 : https://www.cnblogs.com/ityouknow/p/8588725.html
Docker(三):Dockerfile 命令详解 : https://www.cnblogs.com/ityouknow/p/8595384.html
Spring Boot 2.0(四):使用 Docker 部署 Spring Boot : https://www.cnblogs.com/ityouknow/p/8599093.html
Docker(四):Docker 三剑客之 Docker Compose : https://www.cnblogs.com/ityouknow/p/8648467.html
Spring Boot 2.0(五):Docker Compose + Spring Boot : https://www.cnblogs.com/ityouknow/p/8661644.html
Docker(五):Docker 三剑客之 Docker Machine : https://www.cnblogs.com/ityouknow/p/8674247.html
Spring Boot 2.0(六):使用 Docker 部署 Spring Boot 开 : https://www.cnblogs.com/ityouknow/p/8689942.html
Docker(六):Docker 三剑客之 Docker Swarm : https://www.cnblogs.com/ityouknow/p/8903975.html
Docker系列https://mp.weixin.qq.com/s/mNge9HfAjeiP12Z8IikP2g
Docker部署CouchDB 置顶 :http://blog.51cto.com/sgk2011/1911814
docker 配置缓存代理服务apt-cacher-ng 置顶 :http://blog.51cto.com/sgk2011/1911515
Docker升级至最新版-centos7 : http://www.pangxie.space/docker/959
Docker部署Sentry监控Django应用并使用email+钉钉通知 : https://blog.ansheng.me/article/docker-sentry-django-email-dingtalk
docker高级应用之镜像打包与节点推送 荐 : http://blog.51cto.com/dl528888/1692224
docker高级应用之集群与auto scale 荐 : http://blog.51cto.com/dl528888/1687544
使用docker实现半自动化代码自动部署与回滚 荐 : http://blog.51cto.com/dl528888/1685148
docker高级应用之cpu与内存资源限制 : http://blog.51cto.com/dl528888/1659972
Docker跨主机容器互传数据问题及解决方法 : http://blog.51cto.com/dl528888/1655631
centos 7.0运行docker出现内核报错解决方法 荐 : http://blog.51cto.com/dl528888/1655142
docker高级应用之删除私有库镜像 : http://blog.51cto.com/dl528888/1653178
docker高级应用之网络资源限制 荐 : http://blog.51cto.com/dl528888/1641569
docker集群软件之fleet安装 荐 : http://blog.51cto.com/dl528888/1624481
docker高级应用之智能添加与修改防火墙规则 荐 : http://blog.51cto.com/dl528888/1619631
docker停机扩容pool空间 荐 : http://blog.51cto.com/dl528888/1618893
docker高级应用之单机持久化固定容器IP 荐 : http://blog.51cto.com/dl528888/1616527
docker高级应用之动态绑定卷组 荐 : http://blog.51cto.com/dl528888/1613764
docker高级应用之多台主机网络互联 荐 : http://blog.51cto.com/dl528888/1611491
Docker部署私有仓库AppHouse-Centos7 : http://www.pangxie.space/docker/874
部署Domeos系统-Centos7 : http://www.pangxie.space/docker/817
Docker部署私有仓库harbor-centos7 : http://www.pangxie.space/docker/643
部署分布式(cadvisor+influxdb+grafana)-centos7 :http://www.pangxie.space/docker/580
Docker部署datacenter组件-DTR 1.4.3 : http://www.pangxie.space/docker/513
Docker部署datacenter组件-UCP 1.0: http://www.pangxie.space/docker/499
Docker 1.10搭建swarm(consul发现)-centos7 : http://www.pangxie.space/docker/480
Docker部署(Influxdb+cadvisor+grafana)-centos7 : http://www.pangxie.space/docker/456
Centos7升级内核到3.18的方法 荐 : http://blog.51cto.com/dl528888/1609850
使用docker Registry快速搭建私有镜像仓库(内附干货) : https://mp.weixin.qq.com/s/8A172QtYZwyfddhbgDP0iQ
docker高级应用之动态扩展容器空间大小 荐 : http://blog.51cto.com/dl528888/1606170
docker高级应用之赋予容器独立外网ip 荐 : http://blog.51cto.com/dl528888/1604167
使用Docker和saltstack构建运维paas管理平台 : http://blog.51cto.com/rfyiamcool/1543840
用dockerfile配置生成docker image并实现容器部署 荐 : http://blog.51cto.com/rfyiamcool/1541081
docker容器跨服务器的迁移方式export和save 荐 : http://blog.51cto.com/rfyiamcool/1540414
使Docker提供对外服务的网络配置(桥接与端口) : http://blog.51cto.com/rfyiamcool/1540074
关于docker rest api接口组件docker remote api的使用 荐 : http://blog.51cto.com/rfyiamcool/1539677
使用python的docker-py实现docker的api操作 荐 : http://blog.51cto.com/rfyiamcool/1539500
Docker容器固定IP分配 : http://blog.51cto.com/ylw6006/1607014
配置Docker多台宿主机间的容器互联 荐 : http://blog.51cto.com/ylw6006/1606239
Docker创建本地仓库 荐 : http://blog.51cto.com/ylw6006/1597873
Docker升级至1.9.1版本-centos6.5(测试用):http://www.pangxie.space/docker/364
Docker部署认证私有仓库(registry2.x+nginx)-centos7 :http://www.pangxie.space/docker/353
Docker部署zookeeper+mesos+marathon-centos7 : http://www.pangxie.space/docker/297
Docker 容器迁移 : http://www.pangxie.space/docker/263
Docker部署Rancher Server-centos7 : http://www.pangxie.space/docker/212
Docker machine搭建swarm(consul呈现)-centos7 : http://www.pangxie.space/docker/193
Docker 1.8.2部署swarm集群-centos7 : http://www.pangxie.space/docker/160
Docker搭建gogs服务-centos7 : http://www.pangxie.space/docker/150
Docker多台宿主机间的容器互联-centos7(直接路由) : http://www.pangxie.space/docker/139
Docker多台宿主机间的容器互联-centos7(OVS) : http://www.pangxie.space/docker/112
Docker快速部署单机版shipyard : http://www.pangxie.space/docker/98
Docker运行容器后自动退出的问题分析 : http://www.pangxie.space/docker/96
Docker部署nginx+tomcat容器 : http://www.pangxie.space/docker/89
Docker部署私有仓库-centos7 : http://www.pangxie.space/docker/78
Docker 网络实现 : http://www.pangxie.space/docker/55
dockerfile 指令 :http://www.pangxie.space/docker/53
自定义网桥 : http://www.pangxie.space/docker/46
Docker部署wordpress博客 : http://www.pangxie.space/docker/26
容器互联 : http://www.pangxie.space/docker/22
外部访问容器 : http://www.pangxie.space/docker/20
端口映射实现 : http://www.pangxie.space/docker/18
容器访问控制 : http://www.pangxie.space/docker/16
Docker 高级网络配置 :https://segmentfault.com/a/1190000016533047
Docker CheatSheet | Docker 配置与实践清单 : https://segmentfault.com/a/1190000016447161
Docker 问答录(100 问) : https://blog.lab99.org/post/docker-2016-07-14-faq.html
docker部署Django项目 : https://blog.ansheng.me/article/docker-deploy-django
Docker部署Sentry监控Django应用并使用email+钉钉通知 :https://blog.ansheng.me/article/docker-sentry-django-email-dingtalk
靠谱运维 系列 :https://www.ixdba.net/archives/category/storage/docker
Docker入门学习教程(一)介绍 :https://www.ixdba.net/archives/2017/03/549.htm
Docker入门教程学习(二)命令 : https://www.ixdba.net/archives/2017/03/554.htm
Docker入门教程学习(三)Dockerfile : https://www.ixdba.net/archives/2017/03/562.htm
Docker入门教程学习(四)Docker Registry : https://www.ixdba.net/archives/2017/03/564.htm
Docker入门教程学习(五)Docker安全 : https://www.ixdba.net/archives/2017/03/582.htm
Docker入门教程学习(六)15个Docker命令 : https://www.ixdba.net/archives/2017/03/587.htm
Docker学习笔记:Docker 简介 : https://www.ixdba.net/archives/2017/03/605.htm
Docker学习笔记:Docker 基础用法 : https://www.ixdba.net/archives/2017/03/609.htm
harbor 结合OSS 搭建docker企业私有仓库实战 : https://www.ixdba.net/archives/2017/03/613.htm
Docker 网络实现 : https://www.ixdba.net/archives/2017/09/691.htm
Docker集群管理之Kubernetes : https://www.ixdba.net/archives/2017/11/794.htm
企业实战 :
docker高级应用之镜像打包与节点推送 荐 : http://blog.51cto.com/dl528888/1692224
docker高级应用之集群与auto scale 荐 : http://blog.51cto.com/dl528888/1687544
使用docker实现半自动化代码自动部署与回滚 荐 : http://blog.51cto.com/dl528888/1685148
docker高级应用之cpu与内存资源限制 : http://blog.51cto.com/dl528888/1659972
Docker跨主机容器互传数据问题及解决方法 : http://blog.51cto.com/dl528888/1655631
centos 7.0运行docker出现内核报错解决方法 荐 : http://blog.51cto.com/dl528888/1655142
docker高级应用之删除私有库镜像 : http://blog.51cto.com/dl528888/1653178
docker高级应用之网络资源限制 荐 : http://blog.51cto.com/dl528888/1641569
docker高级应用之资源监控 荐 : http://blog.51cto.com/dl528888/1635951
docker集群软件之fleet安装 荐 : http://blog.51cto.com/dl528888/1624481
docker高级应用之智能添加与修改防火墙规则 荐 :http://blog.51cto.com/dl528888/1619631
docker停机扩容pool空间 荐 : http://blog.51cto.com/dl528888/1618893
docker高级应用之单机持久化固定容器IP 荐 : http://blog.51cto.com/dl528888/1616527
docker高级应用之动态绑定卷组 荐 : http://blog.51cto.com/dl528888/1613764
docker高级应用之多台主机网络互联 荐 : http://blog.51cto.com/dl528888/1611491
Centos7升级内核到3.18的方法 荐 : http://blog.51cto.com/dl528888/1609850
docker高级应用之动态扩展容器空间大小 荐 : http://blog.51cto.com/dl528888/1606170
docker高级应用之赋予容器独立外网ip 荐 : http://blog.51cto.com/dl528888/1604167
Docker 基础介绍及配置安装 [一] : http://blog.51cto.com/abcdocker/1871326
Docker 性质及版本选择 [二] : http://blog.51cto.com/abcdocker/1872505
Docker 网络及数据卷设置 [三] : http://blog.51cto.com/abcdocker/1872506
Docker(37篇) : https://www.cnblogs.com/sparkdev/tag/docker/default.html?page=2
如何用Dockerfile构建镜像 : https://mp.weixin.qq.com/s/kDAEIy42toXDiL8jCn5WOg
Docker实战 - 将golang工程部署到docker : https://www.jianshu.com/p/eb799d77563f
docker logs 查看实时日志 :https://www.cnblogs.com/duanxz/p/9996470.html
Tomcat Docker容器自动重启问题排查 :https://www.cnblogs.com/duanxz/p/9996462.html
zabbix监控docker容器状态【推荐】 : https://www.jb51.net/article/141457.htm
如何清理docker产生的垃圾文件 : https://www.jb51.net/article/143176.htm
linux性能分析
docker内存监控与压测 :https://www.cnblogs.com/duanxz/p/10248762.html
docker stats top diff和cp : https://www.cnblogs.com/duanxz/p/10247509.html
docker容器内存占用 之 系统cache,docker下java的内存该如何配置 : https://www.cnblogs.com/duanxz/p/10247494.html
查看docker容器的内存占用 : https://www.cnblogs.com/duanxz/p/10247481.html
容器 & 容器云实用文章和资料 28 篇 :https://mp.weixin.qq.com/s/Ykn96HImZJqHkTn9n2WqPw
使用Docker部署Redis集群 : https://mp.weixin.qq.com/s/pTgT_Z09cKAIOF5TXfOqbw
利用 ELK 搭建 Docker 容器化应用日志中心 : https://mp.weixin.qq.com/s/4XI2BaThlcVR8_z4f9AbbA
Docker服务随容器启动而自启动 : https://blog.csdn.net/mcuhome/article/details/83592763
Docker -v 对挂载的目录没有权限 Permission denied解决办法 : https://blog.csdn.net/mcuhome/article/details/83592743
如何指定docker容器的ip : https://blog.csdn.net/mcuhome/article/details/83592727
Centos 下Kamailio Docker 构建详解 : https://blog.csdn.net/mcuhome/article/details/83592670
走进大数据 | 如何快速清理 Docker 无用资源 : https://edu.51cto.com/center/course/index/search?q=%E9%A3%8E%E5%93%A5@
Swarm、Fleet、Kubernetes、Mesos 编排工具的对比分析 : https://mp.weixin.qq.com/s/gftYvahLRN4zV7yZsOSJ2w
基于 Docker 的微服务架构实践 : https://mp.weixin.qq.com/s/BCr95Gm2kpqtTT9sosjr9A
Docker容器构建过程的安全性分析 : https://mp.weixin.qq.com/s/b0iDxXNGKpQHtO6vrTfzPg
如何开发一个 PHP 的 Docker 化应用(二) : https://mp.weixin.qq.com/s/mI0evUInWDushRf2D46MRQ
如何开发一个 PHP + MySQL 的 Docker 化应用(三) : https://mp.weixin.qq.com/s/_-WRsyMgR6YjuINw-aPtyQ
「Allen 谈 Docker 系列」之 docker exec 与容器日志 : https://mp.weixin.qq.com/s/vG6Pi59nLgNpcZGAatjDWg
「Allen 谈 Docker 系列」之 Docker 容器日志的那些事儿 :https://mp.weixin.qq.com/s/0NjOLBdAMJBSQR5AdIVNuw
Allen 谈 Docker 系列」Docker 容器明文密码问题解决之道 : https://mp.weixin.qq.com/s/mEjjOcBb-zIVEhjeXqhVEg
译见 | 奇妙的 Docker 使用技巧十连发 : https://mp.weixin.qq.com/s/uMJ4WwMYiEzq_RYZXVlBRA
知乎十万级容器规模的分布式镜像仓库实践 : https://mp.weixin.qq.com/s/SJDY22shzCehWm6uYzotxg
基于 Distribution / Harbor 部署 Docker 私有镜像仓库 : https://mp.weixin.qq.com/s/2cgnGsTNi5t6YAwjWtsfkA
CentOS 下 Docker 无法正常启动检查与解决方法 : https://mp.weixin.qq.com/s/-mtJ90QXXh2WDd2lKLRFDA
使用 Docker-compose 一键部署gitlab : https://mp.weixin.qq.com/s/05IyJPaKB8qZIgtKzezhXQ
Docker部署 - Django+MySQL+uWSGI+Nginx :https://zhuanlan.zhihu.com/p/29609591
docker部署MySQL+PHP-FPM+Nginx服务 : https://zhuanlan.zhihu.com/p/59863793
Docker 镜像和容器的导入导出 : https://www.cnblogs.com/saneri/p/9262039.html
docker oracle镜像制作并导入数据 : https://www.cnblogs.com/saneri/p/9217385.html
Docker GitLab镜像部署 : https://www.cnblogs.com/saneri/p/9122183.html
docker开源仓库Harbor部署笔记 : https://www.cnblogs.com/saneri/p/9080087.html
Docker的图形化管理工具Portainer :https://www.jianshu.com/p/1eb775e03b0f
docker搭建Jenkins, 自动化部署spring cloud项目 : https://www.jianshu.com/p/9792c892cf54