AuFS

Docker容器技术

半城伤御伤魂 提交于 2021-02-17 22:17:18
Docker是什么    Docker使用Google公司推出的Go语言进行开发实现,基于Linux内核的cgroup、namespace、以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面   的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离进程,因此也称其为容器。   Docker在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得Docker技术比虚拟机技术更为轻便、快捷。 Docker技术与虚拟机技术   1、传统虚拟机技术      传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程。   2、Docker技术      容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。   3、Docker优势 更高效的利用系统资源(占用内存一般为MB级别,单机上支持上千个容器) 更快速的启动时间(秒级启动) 一致的运行环境 持续交付和部署 更轻松的迁移 更轻松的维护和扩展  Docker基本概念   Docker包括三个基本概念:  镜像(Image)  容器(Container)  仓库(Repository) 来源: oschina 链接: https://my.oschina.net/u

Ubuntu 16.04 LTS中安装Docker最新版本

我的梦境 提交于 2021-01-15 06:59:10
一、安装Docker的先决条件 1、运行64位CPU构架的计算机(目前只能是x86_64和amd64),请注意,Docker目前不支持32位CPU。 2、运行Linux 3.8或更高版本内核。一些老版本的2.6.x或其后的内核也能够运行Docker,但运行结果会有很大的不同。而且,如果你需要就老版本内核寻求帮助时,通常大家会建议你升级到更高版本的内核。 3、内核必须支持一种适合的存储驱动(storage driver),例如: Device Manage; AUFS; vfs; btrfs; ZFS 默认存储驱动通常是Device Mapper或AUFS 4、内核必须支持并开启cgroup和命名空间(namespace)功能。 检查Ubuntu内核版本   ~$ uname -a 检查内核存储驱动 安装linux-iamge-extra-*的kernel包。这个包允许你使用aufs存储驱动。 ~$ sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual 或 检查Device Mapper(推荐) ~$ ls -l /sys/class/misc/device-mapper     lrwxrwxrwx 1 root root 0 3月 24 15:19 /sys/class/misc

squid 透明代理配置

谁说我不能喝 提交于 2021-01-04 07:33:32
阿铭在教程中已经介绍过squid的安装和配置, http://study.lishiming.net/chapter22.html 教程中只介绍了初级的正向代理和反向代理,这篇文档将要介绍透明代理如何配置。 首先,阿铭要介绍一下,什么是透明代理? 透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改变你的request fields(报文),并会传送真实IP,多用于路由器的NAT转发中。 透明代理的原理是这样的: 1. 假设A为内部网络客户机 2. B为外部网络服务器,B提供的服务为httpd服务,监听端口为80 3. C为代理服务器(也是我们的网关),假如代理服务器提供服务端口为3128 过程: 当A向B的80端口请求数据时,TCP连接请求要先经过C,C看到A请求的是B的80端口时,C由于已经设置了转发规则,所以C会把A的请求80端口转发到自己的3128端口,也就是说A将要直接访问C的3128端口,而非B服务器的80端口,此时,C会先去访问B的80端口,把A要访问B的请求数据先请求过来,保存到C上,然后C再把请求数据吐给A。而在A看来,它貌似是直接请求的B,而实际并非如此。由于这些连接过程是自动的,不需要客户端手工配置代理服务器,甚至用户根本不知道代理服务器的存在,因而对用户来说是透明的。 下面阿铭来教您配置透明代理: 通过上面的原理分析,可知,只有您的代理服务器为网关时

基于drone构建CI-CD系统

…衆ロ難τιáo~ 提交于 2020-11-30 21:53:56
kubernetes集群三步安装 CI 概述 用一个可描述的配置定义整个工作流 程序员是很懒的动物,所以想各种办法解决重复劳动的问题,如果你的工作流中还在重复一些事,那么可能就得想想如何优化了 持续集成就是可以帮助我们解决重复的代码构建,自动化测试,发布等重复劳动,通过简单一个提交代码的动作,解决接下来要做的很多事。 容器技术使这一切变得更完美。 <!--more--> 典型的一个场景: 我们写一个前端的工程,假设是基于vue.js的框架开发的,提交代码之后希望跑一跑测试用例,然后build压缩一个到dist目录里,再把这个目录的静态文件用nginx代理一下。 最后打成docker镜像放到镜像仓库。 甚至还可以增加一个在线上运行起来的流程。 现在告诉你,只需要一个git push动作,接下来所有的事CI工具会帮你解决!这样的系统如果你还没用上的话,那请问还在等什么。接下来会系统的向大家介绍这一切。 代码仓库管理 首先SVN这种渣渣软件就该尽早淘汰,没啥好说的,有git真的没有SVN存在的必要了我觉得。 所以我们选一个git仓库,git仓库比较多,我这里选用gogs,gitea gitlab都行,根据需求自行选择 docker run -d --name gogs-time -v /etc/localtime:/etc/localtime -e TZ=Asia/Shanghai -

Docker容器日志管理最佳实践

僤鯓⒐⒋嵵緔 提交于 2020-11-06 08:56:22
来自: 自由早晚乱余生 链接:https://www.cnblogs.com/operationhome/p/10907591.html Docker-CE Server Version : 18 .09.6 Storage Driver : overlay2 Kernel Version : 3 .10.0-862.el7.x86_64 Operating System : CentOS Linux 7 ( Core ) Docker 日志分为两类: Docker 引擎日志(也就是 dockerd 运行时的日志), 容器的日志,容器内的服务产生的日志。 一 、Docker 引擎日志 Docker 引擎日志一般是交给了 Upstart(Ubuntu 14.04) 或者 systemd (CentOS 7, Ubuntu 16.04)。前者一般位于 /var/log/upstart/docker.log 下,后者我们一般 通过 journalctl -u docker 来进行查看。 系统 日志位置 Ubuntu(14.04) /var/log/upstart/docker.log Ubuntu(16.04) journalctl -u docker.service CentOS 7/RHEL 7/Fedora journalctl -u docker.service CoreOS

Docker容器和镜像的区别

强颜欢笑 提交于 2020-11-02 07:10:17
  在学习使用docker过程中会遇到镜像和容器,两者之间的区别是什么?有什么关联?本文将用图文并茂的方式介绍容器、镜像的区别,能够很好的帮助各位深入理解Docker。                一、什么是镜像? 1.1 Image Layer(镜像层)   镜像可以看成是由多个镜像层叠加起来的一个文件系统( 通过UnionFS与AUFS文件联合系统实现 ),镜像层也可以简单理解为一个基本的镜像,而每个镜像层之间通过指针的形式进行叠加。          根据上图,镜像层的主要组成部分包括镜像层 ID、镜像层指针 「指向父层」、元数据「 Layer Metadata,包含了 Docker 构建和运行的信息和父层的层次信息」。只读层和读写层「Top Layer」的组成部分基本一致,同时读写层可以转换成只读层「 通过 docker commit 操作实现」。   元数据(metadata)就是关于这个层的额外信息,它不仅能够让Docker获取运行和构建时的信息,还包括父层的层次信息。需要注意,只读层和读写层都包含元数据。                      每一层都包括了一个指向父层的指针。如果一个层没有这个指针,说明它处于最底层。                Metadata Location:   在docker主机中镜像层(image layer)的元数据被保存在名为

Docker容器和镜像的区别

穿精又带淫゛_ 提交于 2020-10-20 02:01:56
目录 一、什么是镜像? 1.1 Image Layer(镜像层) 1.2 Image(镜像,只读层的集合) 二、什么是容器? 2.1 Container(容器,一层读写层+多层只读层) 2.2 Running Container(运行态容器,一层读写层+多层只读层+隔离的进程空间和包含其中的进程) 三、总结 在学习使用docker过程中会遇到镜像和容器,两者之间的区别是什么?有什么关联?本文将用图文并茂的方式介绍容器、镜像的区别,能够很好的帮助各位深入理解Docker。                一、什么是镜像? 1.1 Image Layer(镜像层)   镜像可以看成是由多个镜像层叠加起来的一个文件系统(通过UnionFS与AUFS文件联合系统实现),镜像层也可以简单理解为一个基本的镜像,而每个镜像层之间通过指针的形式进行叠加。          根据上图,镜像层的主要组成部分包括镜像层 ID、镜像层指针 「指向父层」、元数据「 Layer Metadata,包含了 Docker 构建和运行的信息和父层的层次信息」。只读层和读写层「Top Layer」的组成部分基本一致,同时读写层可以转换成只读层「 通过 docker commit 操作实现」。   元数据(metadata)就是关于这个层的额外信息,它不仅能够让Docker获取运行和构建时的信息,还包括父层的层次信息

Hello Docker(一)——Docker简介

心已入冬 提交于 2020-10-13 08:38:27
Hello Docker(一)——Docker简介 一、Docker简介 1、Docker简介 Docker是Docker Inc公司开源的一项基于Ubuntu LXC技术构建的应用容器引擎Docker Engine的简称,完全基于Go语言开发并遵守Apache2.0协议开源。Docker可以让开发者打包应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux版本机器上,也可以实现虚拟化。Docker容器完全使用沙箱机制,容器相互之间不会有任何接口,并且容器性能开销极低。 Docker最初在Ubuntu 12.04上基于LXC实现,从0.7版本开始使用自行开发的libcontainer,从1.11开始,进一步演进为使用runC和containerd。RedHat从RHEL6.5开始对Docker进行支持。 Docker官网: http://www.docker.com Github Docker源码: https://github.com/docker/docker 2、Docker Engine Docker Engine是一个Client-Server应用程序,包含三个组件: A、docker daemon,是Docker守护进程。 B、REST API接口,用于与守护进程进行通信。 C、Docker CLI,命令行界面(CLI)客户端。

docker基础知识之挂载本地目录

泪湿孤枕 提交于 2020-08-16 06:12:34
https://my.oschina.net/piorcn/blog/324202 http://blog.csdn.net/yangzhenping/article/details/43667785 docker可以支持把一个宿主机上的目录挂载到镜像里。 docker run -it -v /home/ dock /Downloads:/ usr /Downloads ubuntu64 / bin/bash 通过-v参数,冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径。 现在镜像内就可以共享宿主机里的文件了。 默认挂载的路径权限为读写。如果指定为只读可以用:ro docker run -it -v /home/ dock /Downloads:/ usr /Downloads:ro ubuntu64 / bin/bash docker还提供了一种高级的用法。叫数据卷。 数据卷:“其实就是一个正常的容器,专门用来提供数据卷供其它容器挂载的”。感觉像是由一个容器定义的一个数据挂载信息。其他的容器启动可以直接挂载数据卷容器中定义的挂载信息。 看示例: docker run -v /home/ dock /Downloads:/ usr /Downloads --name dataVol ubuntu64 / bin/bash 创建一个普通的容器。用-

容器技术之Docker镜像

僤鯓⒐⒋嵵緔 提交于 2020-08-14 03:54:22
  前文我们聊了下docker的基础使用方法,大概介绍了下docker的架构,管理镜像、运行容器、管理容器的一些相关命令说明;回顾请参考 https://www.cnblogs.com/qiuhom-1874/p/12933412.html ;今天这边博客主要来聊docker的镜像的制作和分发,以及相关镜像的操作和说明;   前面我们提到过docker最核心资源之一就是镜像,镜像就好比是我们的应用程序,要想运行它,前提是要拥有它,并把它装载操作系统上;而docker里的镜像就是把应用程序所依赖的库、文件、环境等打包在一起,组成一个静态的镜像文件;这样一来有了这个镜像,我们就可以把我们自己的应用程序在任何有docker环境的主机上运行成容器;这也是docker受欢迎的原因之一吧,解脱了程序员为其应用程序而苦恼;   docker镜像包含了应用程序启动所需的文件系统以及内容,其目的就是为创建并启动为docker容器;那么docker的镜像到底是怎么构建的呢?我们来看看下面的图大概就会明白   提示:docker镜像采用分层构建的机制,最低层为bootfs,该层的主要作用是用于系统引导的文件系统,包括bootloader和内核,容器启动完成后会被卸载以节省内存资源;在bootfs之上的是rootfs,该层主要表现为docker容器的根文件系统;传统模式中,系统启动之时