标签:仓库 隔离 color mit 华为云 cgroups 成功 集成 latest
描述:Docker [?dɑ:k?(r)] 是一个基于Go语言开发实现的遵循Apache 2.0协议开源项目,目标是实现轻量级的操作系统虚拟化解决方案;
,诞生于2013年初最初发起者是dotCloud公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,后续由于docker的发展后来也改名为Docker Inc,它是仅次于OpenStack最受欢迎的云计算开源项目;Docker 从 17.03版本之后分为 CE(Community Edition) 和 EE(Enterprise Edition)
Docker 的目标是"Build,Ship and Run Any App,Anywhere
",通过对应用组件的封装\[Packaging]-> 分发\[Distribution] -> 部署\[Deployment] -> 运行\[Runtime]
等生命周期进行管理,达到应用级别"一次封装,到处运行
";
例如:它可以独立运行一个Web应用,也可以是一套数据库服务,甚至是一个操作系统或编译器;
Apache 2.0 授权 Github 项目开源 : https://github.com/docker/docker
Dcoker与OpenStack的区别?
完整的Docker由以下几部分构成:
可以与客户端在同一个节点或者运行在不同节点上
,如图像、容器、网络和卷。守护进程还可以与其他守护进程通信来管理Docker服务。守护进程dockerd
并执行其命令;(注意:一个客户端可以与多个守护进程通信
)一个群的每个成员都是一个Docker守护进程
)扩展管理容器,服务允许您定义所需的状态,例如在任何给定时间必须可用的服务副本的数量。默认情况下,服务在所有工作节点之间进行负载平衡。对于使用者来说Docker服务看起来是一个单独的应用程序;Linux容器基础之LXC技术介绍:
描述:Docker引擎的基础是Linux容器(Linux Containers,LXC)技术,容器有效的将各个操作系统管理的资源划分到孤立的组,以便更好的在孤立的组之间平衡有冲突的资源使用需求。
容器可以在核心CPU本地运行指令,并不需要任何专门的解释机制;最早的容器技术可以追溯到1982年Unix系列操作系统上的chroot工具;用户操作容器就像操作一个轻量级虚拟机那样简单,也可以将容器比作为一种沙盒(Sandbox);
Docker 优势:
什么是虚拟化技术?
虚拟化技术是一个通用的概念,在不同的领域有不同的理解;在计算机领域一般指的是计算机虚拟化(Computer Virtualization)或者说是服务器虚拟化;虚拟化的核心是对资源进行抽象和管理,目标往往是为了在同一个主机上运行多个系统或者应用,从而提高系统资源的利用率,同时带来降低成本,方便管理和容错和容灾等好处;
传统虚拟机的比较:
传统虚拟化方式与Docker虚拟化方式
物理机-虚拟机-Docker容器容易理解的对比
Docker 应用场景
描述:Docker对使用者来讲是一个C/S模式(使用客户机-服务器)的架构而Docker的后端是一个非常松耦合的架构,模块各司其职并有机组合支撑Docker的运行。
具体流程:
UNIX套接字
或网络接口使用REST API进行通信
。Docker 内部具体实现:
Docker 本质是宿主机上的一个进程,docker通过namespace实现资源隔离以及轻量级虚拟化容器服务,通过cgroup实现了资源限制,通过写时复制技术(Copy-on-write)实现了高效的文件操作;
Docker通过由内核namespace提供实现的隔离,namespace的API包括clone(),sents()以及unshare()
还有在/proc下的部分文件
即namespace的六项隔离(内核实现 namespace 资源隔离内容 - 系统调用参数
)如下标所示:
名称 | 宏定义 | 隔离的内容 |
---|---|---|
IPC | CLONE_NEWIPC | System V IPC, POSIX message queues (since Linux 2.6.19) 信号量消息队列和共享内存 |
NETWORK | CLONE_NEWNET | network device interfaces, IPv4 and IPv6 protocol stacks, IP routing tables, firewall rules, the /proc/net and /sys/class/net directory trees, sockets, etc (since Linux 2.6.24) 网络设备,网络栈,端口等 |
MOUNT | CLONE_NEWNS | Mount points (since Linux 2.4.19) 挂载点(文件系统) |
PID | CLONE_NEWPID | Process IDs (since Linux 2.6.24) 进程编号 |
User | CLONE_NEWUSER | User and group IDs (started in Linux 2.6.23 and completed in Linux 3.8) 用户和用户组(3.8后内核支持) |
UTS | CLONE_NEWUTS | Hostname and NIS domain name (since Linux 2.6.19) 主机名与域名(自Linux 2.6.19) |
Cgroup | CLONE_NEWCGROUP | Cgroup root directory (since Linux 4.6) Cgroup根目录(自Linux 4.6) |
cgroup的特点与功能:
描述:从下面的图片可以看见出以下几点:
总结:
镜像 [image] / 容器 [Container] / 仓库 [Repository] / Dockerfile
参考书籍:Docker技术入门与实战
系统环境:docker最低支持centos7且在64位平台上,内核版本在3.10以上
官方安装文档:https://docs.docker.com/install/linux/docker-ce/centos/#
镜像开源安装站点:https://mirrors.tuna.tsinghua.edu.cn/help/docker-ce/
官方一键安装脚本
补充时间:[2020年4月22日 11:00:59]
一键安装Docker-ce以及Docker-compose:
##[docker]
#国外
curl -fsSL https://get.docker.com | bash -s docker
#国内
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
curl -fsSL https://get.docker.com -o get-docker.sh && chmod +x get-docker.sh && ./get-docker.sh
#测试安装结果
docker-info
##[docker-compose]
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
#测试安装结果
docker-compose version
Yum安装Docker / Docker-compose
#删除历史docker版本
yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
#下载docker repo包
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#或者手动设置官方源
sudo tee /etc/yum.repos.d/docker.repo <<-‘EOF‘
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
#下载安装docker-ce社区版本
#Docker Community Edition (CE)对于希望开始使用Docker并尝试基于容器的应用程序的开发人员和小型团队来说非常理想。
#Docker CE有三种更新通道:稳定通道、测试通道和夜间通道:
sudo yum install -y docker-ce docker-compose #手动官方源执行 docker-ce-cli containerd.io
# 更新docker-ce
yum -y upgrade docker-ce
#按照版本号从高到低排序
[root@zabbix log]$ yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:18.09.5-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.5-3.el7 @docker-ce-stable #当前使用版本
# Docker 是一个 C/S 架构的服务,安装好 docker 之后需要启动 docker 软件后才能使用 docker 命令;
systemctl start/status docker # 启动docker-ce
# 查看docker启动状态
docker version
Client:
Version: 18.09.5
API version: 1.39
Go version: go1.10.8
Git commit: e8ff056
Built: Thu Apr 11 04:43:34 2019
OS/Arch: linux/amd64
# 移出docker-ce
$ sudo yum remove docker-ce
#主机上的映像、容器、卷或自定义配置文件不会自动删除。删除所有图像、容器和卷:
$ sudo rm -rf /var/lib/docker
#测试 docker 下载 hello-world 或者 alpine
docker pull hello-world
docker images
docker run hello-world
docker-compose的安装补充时间:[2020年1月22日 10:54:55]
#安装docker-compose
#切换为root权限下载并安装docker-compose ( current stable release (v1.25.0) )
$ curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" > /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose #添加执行权限
#在centos7中使用python-pip安装docker-compose
$yum install -y python3
$pip3 install pip --upgrade
[root@vm-1575613390 ~]# pip --version
pip 19.3.1 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)
$pip3 install docker-compose
补充说明:[2020年4月22日 10:58:21]
其它操作系统参考:
Ubuntu的安装:https://docs.docker.com/install/linux/docker-ce/ubuntu/
Windows 下安装 Docker:https://www.docker.com/products/docker-desktop
使用CPU虚拟化检测工具(LeoMoon CPU-V)检测环境:
window 7
Step 1.下载 docker Tool box 进行全安装FULL Installation
Step 2.安装成功后会在桌面出现virtual VM,docker,Kitematic(Alpha)等等
Step 3.点击 Docker Quickstart Terminal进行下载boot2docker.iso 运气好不报错的话可以说明安装完成
Step 4.而我win7启动 Docker Quickstart Terminal报错,解决方法也是很简单
下载后放在C:\Users\WeiyiGeek.docker\machine\cache\boot2docker.iso即可
解决上述问题后,验证安装:
docker pull hello-world
docker images
docker run hello-world
window 10
描述: 现在在Windows 10 Pro, Enterprise, and Education
等系统版本中可以进行下载安装Docker Desktop for Windows
下载地址-当前版本2.3.0.3,它可以进行使用的界面来操作查看docker中的容器,以此来简化了学习成本;
Step 1.设置docker进行安装,加入到PATH之中
Step 2.安装成功,关闭窗口
Step 3.安装后利用powershell进行查看docker版本
> docker version
> docker run hello-world
Step 4.查看docker pull下来得镜像,并且运行
> docker images #查看镜像
> docker run -it hello-world
方式1:使用DaoCloud加速器
简介:DaoCloud 加速器 是广受欢迎的 Docker 工具,解决了国内用户访问 Docker Hub 缓慢的问题。DaoCloud 加速器结合国内的 CDN 服务与协议层优化,成倍的提升了下载速度。
DaoCloud官网:
https://www.daocloud.io/mirror#accelerator-doc
方式2:使用阿里云容器镜像服务加速器
推荐安装1.10.0以上版本的Docker客户端,您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:
#方法1.常规加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-‘EOF‘
{
"registry-mirrors": ["https://xlx9erfu.mirror.aliyuncs.com"]
}
EOF
#方法2:对于 1.12 以前的版本, dockerd 换成 docker daemon
#注:编辑docker.service文件
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --registry-mirrors=https://xlx9erfu.mirror.aliyuncs.com
#方法3:Docker-CE17.12版本以及之后(CentOS7.0)
vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --registry-mirror=https://xlx9erfu.mirror.aliyuncs.com
#通用启动
sudo systemctl daemon-reload #重载守护
sudo systemctl restart docker
#检查加速器是否生效
sudo ps -ef | grep dockerd
root 5346 1 0 19:03 ? 00:00:00 /usr/bin/dockerd --registry-mirror=https://jxus37ad.mirror.aliyuncs.com
补充一键配置:
# Docker中国 mirror
# export REGISTRY_MIRROR="https://registry.docker-cn.com"
# 腾讯云 docker hub mirror
# export REGISTRY_MIRROR="https://mirror.ccs.tencentyun.com"
# 华为云镜像
# export REGISTRY_MIRROR="https://05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com"
# DaoCloud 镜像
# export REGISTRY_MIRROR="http://f1361db2.m.daocloud.io"
# 阿里云 docker hub mirror
# export REGISTRY_MIRROR=https://registry.cn-hangzhou.aliyuncs.com
export REGISTRY_MIRROR=https://xlx9erfu.mirror.aliyuncs.com
curl -sSL https://kuboard.cn/install-script/set_mirror.sh | sh -s ${REGISTRY_MIRROR}
WeiyiGeek Blog - 为了能到远方,脚下的每一步都不能少。
博主 Blog 镜像站点(友链交换请邮我哟
):
更多原创学习笔记文章请关注 WeiyiGeek 公众账号
【点击我关注】
标签:仓库 隔离 color mit 华为云 cgroups 成功 集成 latest
原文地址:https://www.cnblogs.com/WeiyiGeek/p/13787077.html