标签:speed water [] hello plugin 占用 system 写入 开发环境
标题一: Docker 简介Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的?Linux?机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
1.docker容器技术是虚拟化的一种
查看进程,查看网络
2.什么是容器:
一种虚拟化的方案。
传统的虚拟化技术,虚拟的是硬件环境
容器虚拟化是操作系统虚拟化
只能运行相同或相似内核的操作系统
依赖于Linux内核特性:Namespace和Cgroups(Control Group)
3.容器技术的优点:
1.磁盘空间占用少:
传统虚拟化,很小的服务需要完整的操作系统和库的支持。底层架构体积过于庞大,也会占用过多的硬件资源
docker,只有要应用和相对应的库。
4.Docker。
可以将应用程序自动部署到容器。
应用程序部署引擎,轻量的开发者环境。
快速的从开发者环境部署到测试环境然后到生产环境
5.Dokcer实现的目标
提供简单轻量的建模方式,几分钟即可让应用程序容器化,几秒钟即可启动一个服务。
职责的逻辑分离:开饭人员只需管理容器的内容和服务,运维人员只需管理如何运营docker
快速高效的开发生命周期,以容器的形式交付,使用同一种开发环境。
面向服务的架构。一个容器之运行一个服务,所有的服务内部互联。高内聚,低耦合。
6.docker
1.使用docker容器开发,测试,部署服务
2.创建隔离的运行环境。
3.搭建测试环境。
4.构建多用户的平台即服务(PaaS)基础设施
5.提供软件即服务(Saas)应用部署
6.高性能,超大规模的宿主机部署。
7.docker的基本组成
docker client客户端
docker daemon守护进程
docker image 镜像
docker container 容器
docker Registry 仓库
8.Docker依赖的Linux内核特性
Namespace命名空间--封装--隔离
操作系统:
系统资源的隔离:进程,网络,文件系统
PID(Process ID) 进程隔离
NET (Network)网络接口
IPC (InterProcess Communication)跨进程通信
MNT (Mount)挂载点
UTS (Unix Timessharing system)隔离内核版本标识
Cgroup
用来分配资源
资源限制:限制进程使用内存的大小。
优先级设定:那些进程可以优先使用cpu,内存等
资源计量:统计进程使用资源情况
资源控制:进程的挂起恢复
9.Docker容器
文件系统隔离:每个容器有自己的root文件系统
进程隔离:每个容器都运行在自己的进程环境中
网络隔离:容器见的虚拟网络接口和IP地址都是分开的
资源隔离和分组:使用cgroup将CPU和内存之类的资源独立分给每个docker容器
~~~~
使用的环境是centos7
安装
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum makecache fast
sudo yum -y install docker-ce
sudo service docker start
systemctl start docker
注意:
官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,你可以通过以下方式开启。同理可以开启各种测试版本等。****
vim /etc/yum.repos.d/docker-ce.repo
将 [docker-ce-test] 下方的 enabled=0 修改为 enabled=1
安装指定版本的Docker-CE:
yum list docker-ce.x86_64 --showduplicates | sort -r
Loading mirror speeds from cached hostfile
Loaded plugins: branch, fastestmirror, langpacks
docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable
docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
Available Packages
(VERSION 例如上面的 17.03.0.ce.1-1.el7.centos)
sudo yum -y install docker-ce-[VERSION]
# 3.建立docker用户组
默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。
建立 docker 组:
$ sudo groupadd docker
将当前用户加入 docker 组:
$ sudo usermod -aG docker $USER
# 4.安装完后检查安装
[root@localhost ~]# docker version
![](http://i2.51cto.com/images/blog/201811/12/c9523bd630dbf92e346c30329c4ab4b2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
测试:
[root@localhost /]# docker run hello-world
补充:
镜像加速
对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)
{
"registry-mirrors": [
"https://registry.docker-cn.com"
]
}
之后重新启动服务。
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
标签:speed water [] hello plugin 占用 system 写入 开发环境
原文地址:http://blog.51cto.com/14070945/2316073