Docker简介与安装
- 一、Docker基本简介
-
-
- 1.Docker三要素
- 2. 容器种类
- 3. 虚拟机与容器的区别
- 4.Docker的优点
- 5.Docker的应用场景
-
- 二、docker的安装
- 三、镜像
一、Docker基本简介
1.Docker三要素
-
镜像
镜像(images):一个面向Docker容器引擎的只读模板
-
容器
容器 (Container):从镜像创建的运行实例
-
仓库
仓库 (Repository):集中保存镜像的地方;分公有和私有仓库
1.public(公有仓库)
是开放给用户使用、允许用户管理镜像的 Registry 服务
2.private(私有仓库)
除了使用公开服务外,用户还可以在本地搭建私有 Docker Registry
2. 容器种类
-
Linux容器
最初的Linux容器技术是Linux容器,通常称为LXC。LXC是Linux操作系统级别的虚拟化方法,用于在单个主机上运行多个隔离的Linux系统。
-
Docker
Docker起初是一个构建单一应用程序LXC容器的项目,它对LXC进行了多次改造,使容器更加便携和灵活使用。后来它变成了自己的容器运行环境。从较高的层次上讲,Docker是一个Linux实用程序,可以有效地创建,运送和运行容器。
3. 虚拟机与容器的区别
Docker以容器的方式实现了应用程序的隔离,隔离和安全性可以给主机上同时运行多个容器。容器时轻量级的,因为不需要要管理撑的额外负担,而时直接在主机的内核中运行。
与虚拟机相比,可以在给定的硬件组件上运行更多的容器,甚至可以在虚拟机的主机中运行docker
特性 | 容器 | 虚拟机 |
---|---|---|
启动速度 | 秒级 | 分钟级 |
硬盘占用 | 一般为MB | 一般为GB |
运行性能 | 内核运行几乎无损失 | 5%左右损失 |
系统支持量 | 单机支持上千个容器 | 一般几十个 |
隔离性 | 进程级别 | 系统级别 |
操作系统 | 主要Linux | 几乎所有 |
封装程度 | 只打包项目代码和依赖关系,共享宿主机内核 | 完整的操作系统,与宿主机隔离 |
4.Docker的优点
-
更快速的交付和部署
对于开发与运维人员来说,最希望的就是一次创建或配置,可以在任意的地方正常运行,Docker是可以快速创建容器,快速迭代(重复反馈的活动)应用程序,并且还让整个过程全程可见,可以让使用这个应用程序的人更容易的理解它是如何创建与工作的,另外Docker容器它的启动时间是秒级的,可以大大节约开发、测试、部署的时间。
-
更高效的虚拟化
Docker 容器的运行不需要额外的 hypervisor 支持,它是内核级的虚拟化,因此可以实现更高的性能和效率的虚拟化。
-
更轻松的迁移和扩展
Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个。
-
更简单的管理
使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。并且所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。
5.Docker的应用场景
- Web 应用的自动化打包和发布。
- 自动化测试和持续集成、发布。
- 在服务型环境中部署和调整数据库或其他的后台应用。
- 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。
二、docker的安装
- 环境部署
[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# setenforce 0
[[email protected] ~]# vi /etc/selinux/config
SELINUX=disabled
- 安装依赖包
yum install -y yum-utils device-mapper-persistent-date lvm2
- 设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.安装Docker-CE(社区版docker)
yum -y install docker-ce
- 启动服务与自启动
systemctl start docker
systemctl enable docker
- 查看docker版本
docker version
- 查看docer信息
docker info
三、镜像
-
镜像加速
阿里云查找个人镜像加速
Docker基本简介安装一、Docker基本简介二、docker的安装三、镜像 - 重新加载服务配置文件并重启
systemctl daemon-reload
systemctl restart docker
重启后镜像地址变为阿里云的地址
- 配置路由转发
[[email protected] ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
[[email protected] ~]# sysctl -p
[[email protected] ~]# systemctl restart docker
- 查看镜像信息
docker search nginx
- 下载镜像
docker pull nginx
- 查看下载镜像信息
[[email protected] ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f6d0b4767a6c 7 weeks ago 133MB
nginx web f6d0b4767a6c 7 weeks ago 133MB
#存储库 #标签 #镜像ID #创建时间 #大小
- 获取镜像详细信息
docker inspect nginx:latest
- 为镜像添加新标签
docker tag nginx:latest nginx:web
-
删除镜像
(如果镜像已经创建容器,需要停止运行容器)
9.1 通过标签删除 (docker rmi nginx:web )
[[email protected] ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f6d0b4767a6c 7 weeks ago 133MB
nginx web f6d0b4767a6c 7 weeks ago 133MB
[[email protected] ~]# docker rmi nginx:web
Untagged: nginx:web
[[email protected] ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f6d0b4767a6c 7 weeks ago 133MB
9.2 通过镜像ID删除(docker rmi f6d0b4767a6c)
[[email protected] ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f6d0b4767a6c 7 weeks ago 133MB
[[email protected] ~]# docker rmi f6d0b4767a6c
Untagged: nginx:latest
Untagged: [email protected]:10b8cc432d56da8b61b070f4c7d2543a9ed17c2b23010b43af434fd40e2ca4aa
··········
[[email protected] ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
批量删除镜像
docker images | awk '{print "docker rmi "$3}' | bash