1.Docker基本概念

Docker(开课吧笔记)

Docker运行在Linux,需要git技能Docker(开课吧笔记)Docker(开课吧笔记)

docker官网解析

Docker(开课吧笔记)

 

来源于容器又不仅仅是容器,第一个版本基于LXC,远远超过容器概念

 

Docker(开课吧笔记)

交付时拿到的是镜像,直接run运行想要的应用程序

持续集成持续交付更加普及

Docker(开课吧笔记)Docker(开课吧笔记)

秒级启动,可轻易获取

Docker(开课吧笔记)

可忽略与应用无关的操作,用dockerfile就可以构建一模一样的镜像,平民技术

2.Docker实现原理

Docker(开课吧笔记)

Docker(开课吧笔记)

Cgroups对内存、CPU限制

Docker(开课吧笔记)

独立环境下不能看到别的机器

 

数据库使用ipc提高系统通讯效率

Docker(开课吧笔记)

Userspace在3.8版本才有

Docker(开课吧笔记)

Docker(开课吧笔记)Docker(开课吧笔记)

3.Docker组件介绍

Docker(开课吧笔记)

Docker(开课吧笔记)

 

Docker(开课吧笔记)

Docker(开课吧笔记)

Docker(开课吧笔记)

Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)可运行成百上千的容器

Docker(开课吧笔记)

只能在一台机器上部署

Docker(开课吧笔记)Docker(开课吧笔记)对docker镜像和容器进行管理

Docker(开课吧笔记)

1.8.1版本后

Docker(开课吧笔记)

Docker(开课吧笔记)

帮助我们部署到云上

Docker(开课吧笔记)Docker(开课吧笔记)

Kitematic提供gui管理docker容器

 

4.Docker实操环境

Docker(开课吧笔记)

Docker(开课吧笔记)

Docker(开课吧笔记)

Docker(开课吧笔记)

用命令行来创建、启动、停止、删除管理虚拟机的软件

Docker(开课吧笔记)

https://github.com/liubin/docker101

Docker(开课吧笔记)

Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)

Docker(开课吧笔记)

端口转发

 

Docker(开课吧笔记)

Docker(开课吧笔记)Docker(开课吧笔记)

 

Docker(开课吧笔记)

 

 

Docker(开课吧笔记)

因为update后,导致os系统出现问题,重新安装客户端工具

 

Docker(开课吧笔记)

 

Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)

运行docker

Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)

(实操)报错Dockerinfo

 

Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)

 

 

5.什么是docker容器

Docker(开课吧笔记)

Docker(开课吧笔记)Docker(开课吧笔记)

Docker(开课吧笔记)

Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)

Docker启动参数

添加灵雀云加速服务

Docker(开课吧笔记)

Docker(开课吧笔记)Docker(开课吧笔记)

保存文件重启docker服务即可生效

Docker(开课吧笔记)Docker(开课吧笔记)

6.深入docker容器

Docker(开课吧笔记)

Docker(开课吧笔记)Docker(开课吧笔记)

 

或者指定镜像id指定镜像,本地如没有就会去dockerhub查找

Docker(开课吧笔记)解决dockerrun慢的问题

Docker(开课吧笔记)

Docker(开课吧笔记)Docker(开课吧笔记)

Docker(开课吧笔记)

Docker(开课吧笔记)

Docker(开课吧笔记)

容器也结束变为停止状态

Docker(开课吧笔记)

系统中不能重复命名,如重复必须删除停止重名容器,指定端口打开服务供外部服务;detach(分离)后台容器,容器将会在控制台输出输入;打印64位容器id

Docker(开课吧笔记)

Docker(开课吧笔记)

使用浏览器localhost:5050,就能在命令行下面看到输出的日志,ctrl+C会同时退出attach和容器

Docker(开课吧笔记)Docker(开课吧笔记)禁止这些信号传递给容器的第一个进程,避免退出容器

为了调试简单

 

Docker(开课吧笔记)Docker(开课吧笔记)

访问端口

Docker(开课吧笔记)

 

Docker(开课吧笔记)Docker(开课吧笔记)

Docker(开课吧笔记)

将容器id赋值给cidDocker(开课吧笔记)Docker(开课吧笔记)

不能删除正在运行的容器

Docker(开课吧笔记)

就行ssh到远程主机一样

不建议修改正在运行的容器配置

Docker(开课吧笔记)Docker(开课吧笔记)

7.Docker容器的生命周期管理

Docker(开课吧笔记)

Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)

Docker(开课吧笔记)

Docker(开课吧笔记)

Docker(开课吧笔记)

Events显示docker事件发生时会输出到控制台

Docker(开课吧笔记)

Docker(开课吧笔记)

对运行的docker容器暂停pause

Docker(开课吧笔记)

恢复运行

Docker(开课吧笔记)

停止容器

Docker(开课吧笔记)

删除容器

 

Docker(开课吧笔记)

默认docker是不会自动重启容器的,需要手工重启

Docker(开课吧笔记)

达到最大重试次数才会放弃重启;restart则会不管是正常退出还是异常都会重启容器;每次重启时间间隔是上次重启间隔的2倍

 

8.认识docker镜像

Docker(开课吧笔记)

镜像是docker的创新

Docker(开课吧笔记)

Docker(开课吧笔记)

Rootfs操作系统文件系统

Docker(开课吧笔记)

最大的特点是分享,

Docker(开课吧笔记)Docker(开课吧笔记)

Docker(开课吧笔记)Docker(开课吧笔记)

Docker(开课吧笔记)Docker(开课吧笔记)

Docker(开课吧笔记)Docker(开课吧笔记)

Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)

Docker(开课吧笔记)

查看dockerHub的镜像

Docker(开课吧笔记)

Docker(开课吧笔记)

节省一个新镜像启动时花费的时间

Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)

查看镜像更详细的信息

Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)

Dockerhub上还存在

Docker(开课吧笔记)

9.手工构建Docker镜像

Docker(开课吧笔记)

Docker(开课吧笔记)

Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)

设置nginx为前台运行

模式,容器启动后,nginx会在前台运行不会退出,启动容器时的进程退出,容器也就结束Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)

取容器id放到变量cid中Docker(开课吧笔记)

Docker(开课吧笔记)

Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)

新构建的镜像上传到云端

 

Docker(开课吧笔记)Docker(开课吧笔记)

镜像id一样,仓库名不一样

Docker(开课吧笔记)

Push到灵雀云

Docker(开课吧笔记)Docker(开课吧笔记)

10.使用Dockerfile构建Ruby

Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)

没有打标签就会自动设置latest标签

Docker(开课吧笔记)

Build context是构建环境,Dockerfile文件夹底下的所有资源,docker build从客户端传输到docker守护进程,构建是在守护进程里面进行的。如果不想将文件夹下的log之类的文件可在当前文件夹路径添加.dockerignore文件指定哪些文件不被上传到上下文,里面的语言模式匹配采用了go语言的filepass模式。

Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)

Centos基础镜像

Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)

每条env只能设置一条环境变量,空格后面的内容都会作为环境变量的值Key=value可以设置多个环境变量,不同变量用空格分隔

Docker(开课吧笔记)

在容器中也能继续使用

Docker(开课吧笔记)

第一个run安装 ruby所需的工具

第二个是下载源代码,解压编译

Docker(开课吧笔记)

使用\和&&进行分隔,增加代码阅读性

Docker(开课吧笔记)

Docker(开课吧笔记)

Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)

Env、cmd不涉及到软件的修改,只会影响镜像的meta信息,因此增加层大小都是0,查看label,env是否正确报错到镜像当中

Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)

如果构建指令第5条失败,修改后即可从第4条缓存开始执行

 

Docker(开课吧笔记)

Yum、update操作不想缓存可以添加参数

11.Dockerfile指令说明

Docker(开课吧笔记)Docker(开课吧笔记)

推荐使用exec命令

Docker(开课吧笔记)

需要run命令加-p打开指定端口,不能在Dockerfile指定主机映射关系,会降低镜像的可移植性

Run是容器构建构建过程中执行的命令,cmd是容器启动时指定执行的命令

Docker(开课吧笔记)

CMD用于指定容器启动时执行的命令,run是构建过程

CMD参数会传递到entrypoint指定的命令,上图第二种方式,也可在run中覆盖cmd指定的设置。

Docker(开课吧笔记)

与CMD指令相似,run指令中的参数都会当成参数再次传递给entrypoint指定的命令

Entrypoint使用数组方式,可避免/bin/ssh –c带来的问题

 

Docker(开课吧笔记)Docker(开课吧笔记)

第一个没有指定参数,会默认使用CMD中的—help命令,传递给entrypointDocker(开课吧笔记)通过entrypoint可以构建镜像,会显示帮助信息,第二条会覆盖CMD命令。

Docker(开课吧笔记)

Wokerdir从镜像在创建容器时会在容器内部设置一个工作目录,entryponit和cmd命令会在这个目录执行,可以为dokerfile后续的命令设置工作目录,也可以为最终的容器中设置工作目录

Docker(开课吧笔记)Docker(开课吧笔记)

Volume用于向基于镜像创建的容器中添加数据卷,一个数据卷可以存在于一个或多个容器内的特定目录,可以绕过联合文件系统,共享数据,对数据持久化的功能;可以将数据:源代码,数据库,或者其他容器添加到容器中,而不是将这些内容添加到镜像中,并允许多个容器间共享这些数据内容

dockerfile使用Volume指令以后的代码尝试对volume里面的内容进行修改,修改不会生效,都不会进行修改。因为在dockerfile中除了from指令中的每一行,都是基于上一次临时镜像创建一个容器执行一条指令并通过docker commit命令得到一个新镜像,docker commit不会对volume进行保存,volume指令以后进行修改都不会保存下来

Docker(开课吧笔记)

用于将构建环境下的目录或文件复制到镜像中,文件原路径必须与当前构建环境相对于的文件或者目录,本地文件都会放到和docker同一目录下,我们不能复制该目录之外的文件,因为构建环境将会上传到docker的守护进程,而复制操作是在docker守护进程中进行的,任何构建文件之外的东西都是不可用的,也可使用url的形式,会在文件源下载

 

Zip等文件指定为源文件,docker会通过-x tar实现了解压包,不过不支持以url位置使用归档文件,路径中不存在,会自动创建,类似mkdir –p,新创建的文件目录和格式为0755(0rwx-wx-wx),UID和GID都是0

Docker(开课吧笔记)

Copy类似add,只构建上下文中复制文件,只支持本地文件,不支持文件进行提取解压的工作,从远程下载,推荐使用,简单可控

Docker(开课吧笔记)

添加将来执行的指令到镜像当中,当镜像作为From镜像的参数时,这些触发指令就会在from指令执行时中加入到构建过程中,如:将当前代码拷贝到容器中,可将拷贝源代码的指令写到父镜像中,子镜像就不必写,该指令会在子镜像构建from指令后自动执行。如上图父镜像指定了ONBUILD,如果使用该镜像为父镜像,镜像构建时from指令后会插入一条add指令,是ONBUILD触发器中指定的,执行完add命令后才会继续执行构建文件的命令。

ONBUILD防递归使用、from、container不使用。使用该命令需要标签如:ruby 2.0 ONBUILD

12.通过构建私有镜像服务器

Docker(开课吧笔记)

Docker(开课吧笔记)

Docker(开课吧笔记)

Docker(开课吧笔记)

Docker(开课吧笔记)

将busybox重命名为

 

Docker(开课吧笔记)Docker(开课吧笔记)

Docker(开课吧笔记)

Docker(开课吧笔记)

Docker(开课吧笔记)

 

Docker(开课吧笔记)

Docker(开课吧笔记)Docker(开课吧笔记)

Docker(开课吧笔记)Docker(开课吧笔记)

Docker(开课吧笔记)

镜像是在registry中如何存储

Docker(开课吧笔记)

Docker(开课吧笔记)

Docker(开课吧笔记)Docker(开课吧笔记)

 

Docker(开课吧笔记)Docker(开课吧笔记)

有镜像的元数据和镜像的数据

Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)

除了将镜像数据挂载到宿主机以外,还可以通过storege driver存储到云存储服务,Docker(开课吧笔记)Docker(开课吧笔记)

Docker(开课吧笔记)

Docker(开课吧笔记)

只能声明在容器内的路径,如果启动容器时,没有给数据卷指定宿主机上的,它就会在以下目录创建数据卷

所以删除的时候需要加-v,否则数据卷是不会自动删除

Docker(开课吧笔记)

Docker(开课吧笔记)

 

Docker(开课吧笔记)Docker(开课吧笔记)

基于log,发送报告等,除了邮件

13.为私有镜像服务添加Basic

 

14.为私有镜像服务添加Token

15.DockerHub和自动构建

Docker(开课吧笔记)

16.Docker容器连接

17.创建和使用数据卷

18.使用数据卷容器

19.使用DockerCompose

20.Docker Compose配置文件解说

21.初识Docker Machine

Centos7安装vitualbox

查看版本

Docker(开课吧笔记)

安装dockermachine

Docker(开课吧笔记)

Docker(开课吧笔记)

下载VirtualBoxRHEL软件库配置文件

cd /etc/yum.repos.d

wget -P /etc/yum.repos.d http://download.virtualbox.org/virtualbox/rpm/el/virtualbox.repo

 

Docker(开课吧笔记)

安装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

 

Docker(开课吧笔记)

 

 

yum install dkms

Docker(开课吧笔记)

安装开发环境

yum groupinstall "Development Tools" 

Docker(开课吧笔记)


				

安装qt和qt-

yum install qt qt-x11

Docker(开课吧笔记)


				

将安装包拷贝到/usr/local然后执行命令

yum install VirtualBox-5.0-5.0.16_105871_el7-1.x86_64.rpm

Docker(开课吧笔记)

报错信息

Docker(开课吧笔记)

安装扩展VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.0-5.0.16_105871.vbox-extpack

 

Docker(开课吧笔记)

Docker(开课吧笔记)

解决办法

Docker(开课吧笔记)

yum install kernel-headers

yum install make

Docker(开课吧笔记)

重启

Docker(开课吧笔记)Docker(开课吧笔记)

 

 

报错

 

/sbin/rcvboxdrv setup

Docker(开课吧笔记)

 

Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox Digital OceanMicrosoft Azure

查看yum安装软件的目录

 

whereis yum Docker(开课吧笔记)

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-machineDocker(开课吧笔记)

查看docker-machine版本:

docker-machine -v

基本使用

查看当前的machine:

docker-machine ls

 

Docker(开课吧笔记)

Docker(开课吧笔记)

Docker(开课吧笔记)Docker(开课吧笔记)Docker(开课吧笔记)

报错

Docker(开课吧笔记)

 

22.使用DockerMachine创建云主机

 

 

23.DockerMachine命令详解

24.Swarm简介

Docker(开课吧笔记)Docker(开课吧笔记)

获取swarm集群的id

Docker(开课吧笔记)Docker(开课吧笔记)

Master报错

Docker(开课吧笔记)

创建agent01报错问题

Docker(开课吧笔记)

解决

Docker(开课吧笔记)

 

用mobatxterm连接centos7操作时报错:

Docker(开课吧笔记)

Docker(开课吧笔记)将集群id保存在token变量

在centos7里面执行

Docker(开课吧笔记)

Docker(开课吧笔记)

 

Docker(开课吧笔记)Docker(开课吧笔记)

创建两台agent

Docker(开课吧笔记)

Docker(开课吧笔记)Docker(开课吧笔记)

Docker(开课吧笔记)

Docker(开课吧笔记)

Docker(开课吧笔记)Docker(开课吧笔记)

启动5个容器

Docker(开课吧笔记)

过滤机制

Docker(开课吧笔记)

 

Vagrant虚拟机启动swarm

Docker(开课吧笔记)Docker(开课吧笔记)

 

25.Swarm调度策略和过滤机制

 

26.Docker网络基础

27.Docker网络模式

28.容器os和容器标准化

29.网络、存储和PaaS平台

30.基于Docker进行持续集成

31.使用灵雀云命令行工具

32.灵雀云简介

相关文章:

  • 2021-04-02
  • 2021-04-05
  • 2021-12-05
  • 2022-12-23
  • 2021-09-11
  • 2022-01-15
  • 2022-12-23
  • 2021-12-11
猜你喜欢
  • 2022-12-23
  • 2021-05-29
  • 2022-12-23
  • 2021-11-09
  • 2021-09-04
  • 2021-10-13
  • 2021-05-10
相关资源
相似解决方案