Docker(开课吧笔记)
1.Docker基本概念
Docker运行在Linux,需要git技能
docker官网解析
来源于容器又不仅仅是容器,第一个版本基于LXC,远远超过容器概念
交付时拿到的是镜像,直接run运行想要的应用程序
持续集成持续交付更加普及
秒级启动,可轻易获取
可忽略与应用无关的操作,用dockerfile就可以构建一模一样的镜像,平民技术
2.Docker实现原理
Cgroups对内存、CPU限制
独立环境下不能看到别的机器
数据库使用ipc提高系统通讯效率
Userspace在3.8版本才有
3.Docker组件介绍
可运行成百上千的容器
只能在一台机器上部署
对docker镜像和容器进行管理
1.8.1版本后
帮助我们部署到云上
Kitematic提供gui管理docker容器
4.Docker实操环境
用命令行来创建、启动、停止、删除管理虚拟机的软件
https://github.com/liubin/docker101
端口转发
因为update后,导致os系统出现问题,重新安装客户端工具
运行docker
(实操)报错Dockerinfo
5.什么是docker容器
Docker启动参数
添加灵雀云加速服务
保存文件重启docker服务即可生效
6.深入docker容器
或者指定镜像id指定镜像,本地如没有就会去dockerhub查找
解决dockerrun慢的问题
容器也结束变为停止状态
系统中不能重复命名,如重复必须删除停止重名容器,指定端口打开服务供外部服务;detach(分离)后台容器,容器将会在控制台输出输入;打印64位容器id
使用浏览器localhost:5050,就能在命令行下面看到输出的日志,ctrl+C会同时退出attach和容器
禁止这些信号传递给容器的第一个进程,避免退出容器
为了调试简单
访问端口
将容器id赋值给cid
不能删除正在运行的容器
就行ssh到远程主机一样
不建议修改正在运行的容器配置
7.Docker容器的生命周期管理
Events显示docker事件发生时会输出到控制台
对运行的docker容器暂停pause
恢复运行
停止容器
删除容器
默认docker是不会自动重启容器的,需要手工重启
达到最大重试次数才会放弃重启;restart则会不管是正常退出还是异常都会重启容器;每次重启时间间隔是上次重启间隔的2倍
8.认识docker镜像
镜像是docker的创新
Rootfs操作系统文件系统
最大的特点是分享,
查看dockerHub的镜像
节省一个新镜像启动时花费的时间
查看镜像更详细的信息
Dockerhub上还存在
9.手工构建Docker镜像
设置nginx为前台运行
模式,容器启动后,nginx会在前台运行不会退出,启动容器时的进程退出,容器也就结束
取容器id放到变量cid中
新构建的镜像上传到云端
镜像id一样,仓库名不一样
Push到灵雀云
10.使用Dockerfile构建Ruby
没有打标签就会自动设置latest标签
Build context是构建环境,Dockerfile文件夹底下的所有资源,docker build从客户端传输到docker守护进程,构建是在守护进程里面进行的。如果不想将文件夹下的log之类的文件可在当前文件夹路径添加.dockerignore文件指定哪些文件不被上传到上下文,里面的语言模式匹配采用了go语言的filepass模式。
Centos基础镜像
每条env只能设置一条环境变量,空格后面的内容都会作为环境变量的值Key=value可以设置多个环境变量,不同变量用空格分隔
在容器中也能继续使用
第一个run安装 ruby所需的工具
第二个是下载源代码,解压编译
使用\和&&进行分隔,增加代码阅读性
Env、cmd不涉及到软件的修改,只会影响镜像的meta信息,因此增加层大小都是0,查看label,env是否正确报错到镜像当中
如果构建指令第5条失败,修改后即可从第4条缓存开始执行
Yum、update操作不想缓存可以添加参数
11.Dockerfile指令说明
推荐使用exec命令
需要run命令加-p打开指定端口,不能在Dockerfile指定主机映射关系,会降低镜像的可移植性
Run是容器构建构建过程中执行的命令,cmd是容器启动时指定执行的命令
CMD用于指定容器启动时执行的命令,run是构建过程
CMD参数会传递到entrypoint指定的命令,上图第二种方式,也可在run中覆盖cmd指定的设置。
与CMD指令相似,run指令中的参数都会当成参数再次传递给entrypoint指定的命令
Entrypoint使用数组方式,可避免/bin/ssh –c带来的问题
第一个没有指定参数,会默认使用CMD中的—help命令,传递给entrypoint通过entrypoint可以构建镜像,会显示帮助信息,第二条会覆盖CMD命令。
Wokerdir从镜像在创建容器时会在容器内部设置一个工作目录,entryponit和cmd命令会在这个目录执行,可以为dokerfile后续的命令设置工作目录,也可以为最终的容器中设置工作目录
Volume用于向基于镜像创建的容器中添加数据卷,一个数据卷可以存在于一个或多个容器内的特定目录,可以绕过联合文件系统,共享数据,对数据持久化的功能;可以将数据:源代码,数据库,或者其他容器添加到容器中,而不是将这些内容添加到镜像中,并允许多个容器间共享这些数据内容
dockerfile使用Volume指令以后的代码尝试对volume里面的内容进行修改,修改不会生效,都不会进行修改。因为在dockerfile中除了from指令中的每一行,都是基于上一次临时镜像创建一个容器执行一条指令并通过docker commit命令得到一个新镜像,docker commit不会对volume进行保存,volume指令以后进行修改都不会保存下来
用于将构建环境下的目录或文件复制到镜像中,文件原路径必须与当前构建环境相对于的文件或者目录,本地文件都会放到和docker同一目录下,我们不能复制该目录之外的文件,因为构建环境将会上传到docker的守护进程,而复制操作是在docker守护进程中进行的,任何构建文件之外的东西都是不可用的,也可使用url的形式,会在文件源下载
Zip等文件指定为源文件,docker会通过-x tar实现了解压包,不过不支持以url位置使用归档文件,路径中不存在,会自动创建,类似mkdir –p,新创建的文件目录和格式为0755(0rwx-wx-wx),UID和GID都是0
Copy类似add,只构建上下文中复制文件,只支持本地文件,不支持文件进行提取解压的工作,从远程下载,推荐使用,简单可控
添加将来执行的指令到镜像当中,当镜像作为From镜像的参数时,这些触发指令就会在from指令执行时中加入到构建过程中,如:将当前代码拷贝到容器中,可将拷贝源代码的指令写到父镜像中,子镜像就不必写,该指令会在子镜像构建from指令后自动执行。如上图父镜像指定了ONBUILD,如果使用该镜像为父镜像,镜像构建时from指令后会插入一条add指令,是ONBUILD触发器中指定的,执行完add命令后才会继续执行构建文件的命令。
ONBUILD防递归使用、from、container不使用。使用该命令需要标签如:ruby 2.0 ONBUILD
12.通过构建私有镜像服务器
将busybox重命名为
镜像是在registry中如何存储
有镜像的元数据和镜像的数据
除了将镜像数据挂载到宿主机以外,还可以通过storege driver存储到云存储服务,
只能声明在容器内的路径,如果启动容器时,没有给数据卷指定宿主机上的,它就会在以下目录创建数据卷
所以删除的时候需要加-v,否则数据卷是不会自动删除
基于log,发送报告等,除了邮件
13.为私有镜像服务添加Basic
14.为私有镜像服务添加Token
15.DockerHub和自动构建
16.Docker容器连接
17.创建和使用数据卷
18.使用数据卷容器
19.使用DockerCompose
20.Docker Compose配置文件解说
21.初识Docker Machine
Centos7安装vitualbox
查看版本
安装dockermachine
下载VirtualBox的RHEL软件库配置文件
cd /etc/yum.repos.d
wget -P /etc/yum.repos.d http://download.virtualbox.org/virtualbox/rpm/el/virtualbox.repo
安装RPMForge.
首先从http://pkgs.repoforge.org/rpmforge-release/上下载相应的rpm文件,我下载的是rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm,具体版本信息请参考:http://wiki.centos.org/zh/AdditionalResources/Repositories/RPMForge
将安装包拷贝到/usr/local目录下
rpm -ivh rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
yum install dkms
安装开发环境
yum groupinstall "Development Tools"
安装qt和qt-
yum install qt qt-x11
将安装包拷贝到/usr/local然后执行命令
yum install VirtualBox-5.0-5.0.16_105871_el7-1.x86_64.rpm
报错信息
安装扩展VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.0-5.0.16_105871.vbox-extpack
解决办法
yum install kernel-headers
yum install make
重启
报错
/sbin/rcvboxdrv setup
Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure
查看yum安装软件的目录
whereis yum
1、安装
curl -L https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64 >/usr/local/bin/docker-machine && chmod +x /usr/local/bin/docker-machine
查看docker-machine版本:
docker-machine -v
基本使用
查看当前的machine:
docker-machine ls
报错
22.使用DockerMachine创建云主机
23.DockerMachine命令详解
24.Swarm简介
获取swarm集群的id
Master报错
创建agent01报错问题
解决
用mobatxterm连接centos7操作时报错:
将集群id保存在token变量
在centos7里面执行
创建两台agent
启动5个容器
过滤机制
Vagrant虚拟机启动swarm
25.Swarm调度策略和过滤机制
26.Docker网络基础
27.Docker网络模式
28.容器os和容器标准化
29.网络、存储和PaaS平台
30.基于Docker进行持续集成
31.使用灵雀云命令行工具
32.灵雀云简介
Docker(开课吧笔记)的更多相关文章
- Docker小白使用笔记
本文来自网易云社区. 本人DBA一枚,但因为工作的关系,接手的机器越来越多,要部署的东西也从MySQL扩展到其他千奇百怪的各种应用服务,因此需要使用自动化部署的场景也越来越多.早就听运维部的其他大大们 ...
- 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记1 IOS8概述
首先感谢网易公开课和SwiftV课堂的朋友们辛苦翻译,这个系列是我学习斯坦福IOS8公开课的个人心得体会和笔记,希望能给大家带来启发. 首先我们要知道IOS系统中的结构情况,从贴近硬件的底层到贴近用户 ...
- Docker Stack 学习笔记
该文为<深入浅出Docker>的学习笔记,感谢查看,如有错误,欢迎指正 一.简介 Docker Stack 是为了解决大规模场景下的多服务部署和管理,提供了期望状态,滚动升级,简单易用,扩 ...
- Docker 简单使用笔记
Docker笔记 安装 首先检查是否已经安装过Docker:yum list installed | grep docker,如果已经安装过需要删除旧的Docker:yum remove dock ...
- Docker&K8S学习笔记(一)—— Docker安装
最近一年在工作上经常使用Docker与K8S,除了利用其打镜像,部署服务外,还基于Docker与K8S开发了一套CICD流水线平台,为了加深相关知识点的理解,所以从今天开始会定期更新学习笔记,本套学习 ...
- docker入门-学习笔记
docker可以类比成window下的VMware或者virtualbox软件.docker有两个基本的概念:容器(container)和镜像(image),分别对应为VMware中的系统镜像和系统镜 ...
- Docker compose学习笔记
一.compose compose 作用 你的应用可能需要很多个服务,比如web服务,数据库服务,缓存服务等等.我们可以把这些服务放到单独的容器里面,如果手工去配置这些服务会有些麻烦,docker c ...
- [Docker] docker 基础学习笔记6(共6篇)
这个迁移指的是docker整个系统的迁移,而不是说images存储位置迁移 docker info 查看docker的各项配置 首先做文件的迁移 使用rsync软件将docker的文件夹整体迁移到 ...
- [Docker] docker 基础学习笔记5(共6篇)
docker 配置文件的位置: centos : /etc/sysconfig/docker ubuntu: /etc/default/docker 现在比如我自己电脑上已经装好了docker,但 ...
随机推荐
- ADO.NET 增删改、查
数据访问 对应命名空间:System.Data.SqlClient; SqlConnection:连接对象SqlCommand:命令对象SqlDataReader:读取器对象 CommandText: ...
- js在新页面中返回到上一页浏览的历史位置
在微信浏览器中浏览页面时,在当前页面中当我们将页面往下滚动到某一个位置时,可能我们就会点击某个链接而页面跳转到了另外一个页面,而当我们又返回到上一个页面时我们会发现那个页面还停留在我们之前浏览的位置, ...
- FMDB的简单用法
使用cocoaPods将FMDB下载到工程 第一步:引入框架,引入支持类库(libsqlite3.0.tbd) #import <FMDB.h> 声明属性 @interface ViewC ...
- 如何使用Babel将ES6转码为ES5?
一.前言: 当我们还在沉迷于ES5的时候,殊不知ES6早就已经发布几年了.时代在进步,WEB前端技术也在日新月异,是时候做些改变了! ECMAScript 6(ES6)的发展速度非常之快,但现代浏览器 ...
- css遇到的那些坑——浏览器默认样式设置
今天自己写css样式,其中用到了<ul>标签,设置了一系列效果后运行,发现位置与设置有出入.chrome上打开检查项,发现<ul>标签的styles底部多了以下一段: ul, ...
- AspNet Identity 和 Owin 谁是谁
英文原文:http://tech.trailmax.info/2014/08/aspnet-identity-and-owin-who-is-who/ 最近我发现Stackoverflow上有一个非常 ...
- 1.1XAF框架开发视频教程-简单的订单管理实现过程,视频,提纲,及教程源码
下面是视频教程的提纲: PPT版本的提纲下载 本节源码下载 XAF框架开发教程 快速实现企业级信息系统开发的利器 XAF简介 ´ 开发公司:www.devexpress.com,老牌控件公司 ´ ...
- win8 wifi开关显示关闭,且设置里面wifi开关显示灰色的解决办法
只要从华硕官网下载驱动,电源管理驱动,安装下面显示的几个软件即可,然后重启电脑,即可看见wifi热点,另外设置里面的wifi开关也将显示正常(刚开始安装了个驱动人生根本没用,最后在华硕官网下载了个电源 ...
- oracle系列笔记(1)---查询数据
查询数据 1. 查询(select .. form ..) (1)普通查询 select * from employees --代表查询employees表中所有数据 select last_n ...
- MySql Sql 优化技巧分享
有天发现一个带inner join的sql 执行速度虽然不是很慢(0.1-0.2),但是没有达到理想速度.两个表关联,且关联的字段都是主键,查询的字段是唯一索引. sql如下: SELECT p_it ...