20200106笔记

25.1 docker简介
25.2 安装docker
25.3 镜像管理
25.4 通过容器创建镜像
25.5 通过模板创建镜像

一、docker简介

官网 www.docker.com

github https://github.com/docker/docker.github.io

开源的容器引擎,可以让开发者打包应用以及依赖的库,然后发布到任何流行的linux发行版上,移植很方便

由go语言编写,基于apache2.0协议发布

基于linux kernel,要想在win下运行需要借助一个vm(虚拟机)来实现

自2013年开始,近些年发展迅猛

docker从1.13x开始,版本分为社区版ce和企业版ee,并且基于年月的时间线形式,当前最新稳定版为17.09 参考http://blog.csdn.net/chenhaifeng2016/article/details/68062414

Docker和传统的虚拟化比较
在这里插入图片描述
在这里插入图片描述
Docker的优势

启动非常快,秒级实现

资源利用率高,一台高配置服务器可以跑上千个docker容器

更快的交付和部署,一次创建和配置后,可以在任意地方运行

内核级别的虚拟化,不需要额外的hypevisor支持,会有更高的性能和效率

易迁移,平台依赖性不强
在这里插入图片描述
Docker核心概念

镜像,是一个只读的模板,类似于安装系统用到的那个iso文件,我们通过镜像来完成各种应用的部署。

容器,镜像类似于操作系统,而容器类似于虚拟机本身。它可以被启动、开始、停止、删除等操作,每个容器都是相互隔离的。

仓库,存放镜像的一个场所,仓库分为公开仓库和私有仓库。 最大的公开仓库是Docker hub(hub.docker.com),国内公开仓库(dockerpool.com)

二、安装docker

curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repo

yum install -y docker-ce

速度比较慢,大家也可以直接下载rpm包

https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

下载完,上传到linux下

也需要用yum安装,可以自动解决依赖关系

yum install -y docker-ce-xxxx.rpm

systemctl start docker 启动docker

三、镜像管理

docker pull centos//可以下载centos镜像,速度很慢

配置docker加速器(参考 http://blog.csdn.net/xlemonok/article/details/71403534)

vi /etc/docker/daemon.json//加入如下内容
{
“registry-mirrors”: [“https://dhq9bx4f.mirror.aliyuncs.com”]
}

说明:这个url为加速器地址,需要同学们自行到阿里云申请

配置完加速器,重启docker服务,再次docker pull centos会快很多

docker images 查看本地的镜像

docker search xxx //搜索镜像,其中xxx是关键词

docker tag centos aming123 //给镜像打标签

docker run -itd centos //把镜像启动为容器,-i表示让容器的标准输入打开,-t表示分配一个伪终端,-d表示后台启动,要把-i -t -d 放到镜像名字前面

docker ps //查看运行的容器,加上-a选项后可以查看所有容器,包括未运行的

docker rmi centos //用来删除指定镜像, 其中后面的参数可以是tag,如果是tag时,实际上是删除该tag。当后面的参数为镜像ID时,则会彻底删除整个镜像,所有标签也会一同删除

四、通过容器创建镜像

docker run启动容器后,可以通过下面命令进入容器

docker exec -it xxxxx bash//其中xxxxx为容器id,这个id可以用docker ps查看,最后面的bash为进入容器后我们要执行的命令,这样就可以打开一个终端

进入到该容器中,我们做一些变更,比如安装一些东西,然后针对这个容器进行创建新的镜像

在容器中执行 yum install -y net-tools,然后ctrl d退出容器

docker commit -m “change somth” -a “somebody info” container_id new_image_name //container_id通过docker ps -a获取,后面的new_image_name为新镜像名字

例如: docker commit -m “install net-tools” -a “Aming” 2c74d574293f centos_with_nettool 这个命令有点像svn的提交,-m 加一些改动信息,-a 指定作者相关信息 2c74d这一串为容器id,再后面为新镜像的名字

五、通过模板创建镜像

首先去下载一个模板

http://openvz.org/Download/templates/precreated //下载速度不快,阿铭下载了一个centos6的模板centos-6-x86-minimal.tar.gz

导入该镜像的命令为:

cat centos-6-x86-minimal.tar.gz|docker import - centos6

docker images查看导入的镜像

把现有镜像,导出为一个文件:

docker save -o aming-centos.tar aming

我们还可以用该文件恢复本地镜像:

docker load --input aming-centos.tar 或者
docker load < aming-centos.tar

docker push image_name //可以把自己的镜像传到dockerhub官方网站上去,但前提是需要先注册一个用户,后续如果有需求再研究吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值