虚拟化容器技术
Docker
介绍
利用虚拟化技术封装特定应用的环境,具有隔离独立满足特定条件的“盒子”,相当于一个微版虚拟机。
具有启动速度快,资源利用率高,性能开销小,一次构建到处运行特性。
技术原理
cgroups:对任意进程分组化管理,可以进行资源分配,包括CPU时间,IO时间,内存大小等。
namespace:对进程进行资源隔离,包括网络,主机名,进程通信。用户权限,PID,文件系统等。
LXC(Linuxcontainer):旨在提供共享内核的OS级虚拟化方法,在执行时不需要重复加载Kernel(内核),且容器内核与主机共享。
其他:文件系统AUFS/OverlayFS、控制权限集Capabilities、安全访问控制AppArmor等
安装
yum/apt 安装#docker-io现在有不明错误,用docker-ceyum/apt-get –y install docker-io
用docker-ce
需要配置docker的yum源【wget /docker-ce/linux/centos/docker-ce.repo放入/etc/yum.repo.d目录 执行yum makecache】
为了拉取方便,配置国内公有镜像仓库地址,这里配置网易的
在/etc/docker/daemon.json(没有创建)写入下面的
{"registry-mirrors": ["http://hub-mirror."]}
配置开机启动,启动服务
service docker enable/systemctl enable dockerservice docker start/systemctl start docke
r
启动容器时报错
WARNING: IPv4 forwarding is disabled. Networking will not work.a93d14f536d31b3edfd847f12c8e1115bb75bc2b202fb44f761c2e14ca6b
解决办法:
# vi /etc/sysctl.conf
或者
# vi /usr/lib/sysctl.d/00-system.conf
添加如下代码:
net.ipv4.ip_forward=1
重启network服务
# systemctl restart network
查看是否修改成功
# sysctl net.ipv4.ip_forward
私有镜像仓库配置
拉取registry镜像 docker pull registry
搭建启动本地镜像仓库容器(不带用户验证)
docker run -d -v /opt/registry: /var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
其中:
-v后面的参数是做文件挂载,意思是把容器中/var/lib/registry文件夹下的文件挂载本地/opt/registry目录下,保证仓库容器停止时镜像文件保存在本地且不丢失。
–restart 指仓库容器的启动伴随着docker启动而启动
-p 暴露的端口映射 本机端口:容器暴露端口
把私有仓库服务配置到docker实例中去
在”/etc/docker/“目录下,创建”daemon.json“文件。在文件