1.Docker简介
- ? docker的历史
2010
年,几个的年轻人,就在美国的旧金山成立了一家公司
dotcloud
。做一些
Paas
平台的创业公司! 从事LXC
(
Linux Container
容器)有关的容器技术!
Linux Container
容器是一种内核虚拟化技术,可以 提供轻量级的虚拟化,以便隔离进程和资源。他们将自己的技术(容器化技术)命名就是 Docker
。
Docker
刚刚延生的时候,没有引起行业的注意!虽然获得了创业孵化器
(Y Combinator)
的支持、也获得 https://www.docker.com ,docker官方文档地https://docs.docker.com/
https://github.com/docker/docker-ce
过一些融资,但随着
IT
巨头们
(
微软、谷歌、亚马逊等厂商
)
也进入
PaaS
凭他,
dotCloud
举步维艰,眼看 就活不下去!
2013
年,
dotCloud
的创始人,
28
岁的
Solomon Hykes
做了一个艰难的决定,将
dotCloud
的核心引擎开 源,这项核心引擎技术能够将Linux
容器中的应用程序、代码打包,轻松的在服务器之间进行迁移。这个 基于LXC
技术的核心管理引擎开源后,让全世界的技术人员感到惊艳。感叹这一切太方便了!!越来越 多的人发现docker
的优点!火了。
Docker
每个月都会更新一个版本!
2014
年
6
月
9
日,
Docker1.0
发 布!1.0
版本的发布,标志着
docker
平台已经足够成熟稳定,并可以被应用到生产环境。 docker为什么这么火?因为
docker
十分的轻巧!在容器技术出来之前,我们都是使用虚拟机技术!在 window中装一个
VMware
,通过这个软件我们可以虚拟出来一台或者多台电脑!笨重!虚拟机也属于虚 拟化技术,Docker
容器技术,也是一种虚拟化技术!
- 为什么会有docker出现
假定您在开发一个微服务项目,您使用的是一台笔记本电脑而且您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。此外,您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。您希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销。请问?您要如何确保应用能够在这些环境中运行和通过质量检测?并且在部署过程中不出现令人头疼的版本、配置问题,也无需重新编写代码和进行故障修复??答案就是使用容器。Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案-----系统平滑移植,容器虚拟化技术。环境配置相当麻烦,换一台机器,就要重来一次,费力费时。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样地复制过来。开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。
docker 可以:?开发/运维(DevOps)新一代开发工程师
3. docker理念? ????????????????? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????Docker是基于Go语言实现的云开源项目 。Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”。
2.什么是docker
当人们说“Docker”时,他们通常是指 Docker Engine,它是一个客户端 - 服务器应用程序,由 Docker 守护进程、一个REST API指定与守护进程交互的接口、和一个命令行接口(CLI)与守护进程通信(通过 封装REST API)。Docker Engine 从 CLI 中接受docker 命令,例如 docker run 、docker ps 来列出正 在运行的容器、docker images 来列出镜像,等等。
docker
是一个软件,可以运行在
window
、
linux
、
mac
等各种操作系统上。
docker
是一个开源的应用容器引擎,基于
Go
语言开发并遵从
Apache2.0
协议开源,项目代码托 管在github
上进行维护
docker
可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任 何流行的 Linux
机器上。
容器是完全使用沙箱机制,相互之间不会有任何接口
,
更重要的是容器性能开销极低。
3.docker基本组成
docker
主机
(Host)
:安装了
Docker
程序的机器(
docker
直接安装在操作系统之上);
docker
仓库
(Registry)
:用来保存各种打包好的软件镜像;仓库分为公有仓库和私有仓库。
(
很类似 maven,Docker Hub)
docker
镜像
(Images)
:软件打包好的镜像;放在
docker
仓库中;
docker
容器
(Container)
:镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用
4.docker 安装
前提条件 目前,CentOS 仅发行版本中的内核支持 Docker。Docker 运行在CentOS 7 (64-bit)上, 要求系统为64位、Linux系统内核版本为 3.8以上,这里选用Centos7.x ? 查看自己的内核 uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)
1.下载安装地址? ?
2.卸载旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
3.yum安装gcc相关
yum -y install gcc
yum -y install gcc-c++
安装官网要求的依赖包:
yum install -y yum-utils
主要在设置镜像仓库的时候,管网上提供的地址 和容易超时:
我们需要设置为:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.更新索引包并安装
更新yum软件包索引:
yum makecache fast
安装DOCKER CE:
yum -y install docker-ce docker-ce-cli containerd.io
启动docker:
systemctl start docker
systemctl stop docker
systemctl restart docker
systemctl status docker
systemctl enable docker
测试:
查看版本:
docker version
卸载docker:
1. systemctl stop docker
2. yum remove docker-ce docker-ce-cli containerd.io
3. rm -rf /var/lib/docker
4. rm -rf /var/lib/containerd
?5.配置镜像加速
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://aa25jngu.mirror.aliyuncs.com"]
}
EOF
注意: 镜像加速地址,是你自己阿里云上的地址 ,参考下面截图查看
重启服务:
systemctl daemon-reload
systemctl restart docker
?6.测试,运行??docker run hello-world? ,, 有看到 hello from docker 输出就表示成功了
?run主要干了:
Docker学习手记2
|