千家信息网

Docker简介以及如何安装Docker和镜像管理

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,本篇文章为大家展示了Docker简介以及如何安装Docker和镜像管理,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、Docker简介官网 www.dock
千家信息网最后更新 2025年01月23日Docker简介以及如何安装Docker和镜像管理

本篇文章为大家展示了Docker简介以及如何安装Docker和镜像管理,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

一、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,并且基于年月的时间线形式,比如18.03就是2018年3月,当前最新稳定版为18.09参考。

Docker版本变化说明:http://blog.csdn.net/chenhaifeng2016/article/details/68062414

Docker和传统的虚拟化比较:

Docker也叫容器虚拟化,因为少了一层操作系统,所以也是轻量虚拟化。

最下面一层是服务器,硬件,往上一层是host OS,Linux操作系统,再往上,传统的有一个Hypervisor,就比如KVM,需要安装一个KVM的服务来驱动虚拟化,docker需要安装一个docker的服务,第三层是类似的,再往上就不一样了,docker不需要安装客户虚拟机,而传统的安装完KVM以后还需要新建虚拟机,在这个虚拟机上再去安装一个操作系统。

Docker的优势

启动非常快,秒级实现。

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

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

内核级别的虚拟化,不需要额外的hypevisor支持,会有更高的性能和效率。不需要虚拟化CPU、内存等等的服务。

易迁移,平台依赖性不强。可以在Linux下搞一个镜像,把这个镜像放到Windows下去运行。

下图是docker和虚拟机的特性对比:

Docker的核心理念

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

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

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

二、安装Docker

先下载一个官方提供的yum源

# curl https://download.docker.com/linux/centos/docker-ce.repo -o  /etc/yum.repos.d/docker.repo# yum list |grep docker-ce   可以看到最新版是19.03docker-ce.x86_64                        3:19.03.5-3.el7                docker-ce-stable# 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

启动以后,它会帮你自动生成一些iptables规则,但是这个规则不会自动保存,要想保存它,执行service iptables save。一般作为docker的服务器,iptables规则尽量不要去动它。

# iptables -t nat -F# iptables -t nat -nvL# systemctl restart docker# iptables -t nat -nvL清空规则再重启docker后,规则会回来,但是得要先保存。

三、镜像管理

类似于系统的iso镜像文件。

# docker pull centos  //可以下载centos镜像,速度很慢。直接到官网拉取一个镜像。

docker pull类似于git pull。

配置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 查看本地的镜像[root@fuxi01 ~]# docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZEcentos              latest              0f3e07c0138f        3 months ago        220MB

TAG:标签,每个镜像可以有很多个标签。latest这个是版本标签。

IMAGE ID:用来区分系统里每个镜像的ID,区分镜像的唯一标识。

# docker search xxx  //官方有哪些镜像,用search搜索镜像,其中xxx是关键词,比如jumpserver,就会把jumpserver相关的docker# docker tag centos yw_centos //给镜像打标签# docker tag centos centos:111 # docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZEubuntu              latest              549b9b86cb8d        13 days ago         64.2MByw_centos           latest              0f3e07c0138f        3 months ago        220MBcentos              111                 0f3e07c0138f        3 months ago        220MBcentos              latest              0f3e07c0138f        3 months ago        220MB

不加冒号,则打的标签在第一列,加了冒号,后面打的标识在TAG那,第二列。

# docker run -itd centos  43aae89a76aef04cab62efcf6c4ec2f24a29f69db192125b0d72b2e111af69ba

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

# docker ps  //查看运行的容器,加上-a选项后可以查看所有容器,包括未运行的,docker ps -a。CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES43aae89a76ae        centos              "/bin/bash"         About a minute ago   Up 24 seconds                           serene_kare
# docker rmi centos  # docker rmi centos:111Untagged: centos:111

//用来删除指定镜像, rm就是删除,i就是images,其中后面的参数可以是tag,如果是tag时,实际上是删除该tag。当后面的参数为镜像ID时,则会彻底删除整个镜像,所有标签也会一同删除。当有同名镜像,而tag不同时,需要把tag加上才能删除。

四、Docker通过容器创建镜像

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

# docker exec -it 43aae89 bash# docker exec -it infallible_lalande bash

//其中43aae89为容器id,这个id可以用docker ps查看,也可以不写容器ID,写它的names,在docker ps中可以查看到,最后面的bash为进入容器后要执行的命令,这样就可以打开一个终端。

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

在容器中执行 yum install -y net-tools,然后ctrl d退出容器,ifconfig可以看到有docker0的网卡。

# 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 "aminglinux" 43aae89 centos_with_net

这个命令有点像svn的提交,-m 加一些改动信息,-a 指定作者相关信息,43aae89这一串为容器id,再后面为新镜像的名字。

# docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZEcentos_with_net     latest              2803335f23a6        33 seconds ago      261MBubuntu              latest              549b9b86cb8d        3 weeks ago         64.2MBcentos              latest              0f3e07c0138f        3 months ago        220MByw_centos           latest              0f3e07c0138f        3 months ago        220MB

执行docker images就可以看到新的镜像了。

上述内容就是Docker简介以及如何安装Docker和镜像管理,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

镜像 容器 系统 服务 仓库 标签 规则 运行 操作系统 就是 配置 简介 管理 传统 内容 加速器 名字 命令 服务器 版本 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库统计各年级学生人数 如何防止数据库中记录重复 璀璨星途的服务器怎么看 服务器怎么验证客户端证书 数据库应用名词解释函数 江苏售后备件管理软件开发 永恒之塔数据库50级长剑属性 代理一个游戏服务器多少钱 将文件转换成二进制传入数据库 小小大星球3 服务器 网络安全等级保护价格 武汉企业软件开发公司 网络安全主题演讲 怎么开互联网科技公司 银川软件开发设计方案 新城区网络安全宣传活动 网络安全法第21集 数据库系统包括哪些功能 企业员工网络安全不容小觑 用什么电脑配置做服务器 sql 数据库回滚 什么是服务器的公共服务 网络安全法行政责任 数据库用户没有权限怎么办 5g软件开发什么意思 参与套路贷软件开发销售 同步计算机网络技术就业前景 苏州市互众网络技术有限公司 广州网络安全培训中心 软件开发模型主要有
0