Docker简介

Docker是一个客户端-服务器(C/S)架构程序。Docker客户端只需要Docker服务器或者守护进程发出请求,服务器或者守护进程将完成所有工作并返回结果。
Docker的组成部分:
Container(容器)--------》Image(镜像)-------》repository(仓库)
镜像是Docker运行容器的前提,仓库是存放镜像的场所
镜像:镜像是静态的,可以被用户分享的文件。和虚拟机类似,需要一个iso镜像才能安装系统,Docker中的镜像也是这个东西,镜像是静态的,不能对其操作,只能pull别人的镜像或者push自己的镜像。
容器:容器是基于镜像启动起来的,容器中可以运行一个或多个进程.镜像是Docker生命周期中的构建或者打包阶段,而容器则是启动或者执行阶段,容器基于镜像启动,一旦容器启动完成后,我们就可以登录到容器中安装自己需要的软件或者服务。
Docker容器就是一个镜像格式;一个标准操作;一个执行环境。
容器提供了隔离性,结论是,容器可以为各种测试提供很好的沙盒环境。并且,容器本 身就具有“标准性”的特征,非常适合为服务创建构建块。Docker 的一些应用场景如下:
1:加速本地开发和构建流程,使其更加高效、更加轻量化。本地开发人员可以构建、 运行并分享 Docker 容器。容器可以在开发环境中构建,然后轻松的提交到测试环境中,并 最终进入生产环境。
2:能够让独立的服务或应用程序在不同的环境中,得到相同的运行结果。这一点在 面向服务的架构和重度依赖微型服务的部署由其实用。
3:用 Docker 创建隔离的环境来进行测试。例如,用 Jenkins CI 这样的持续集成工具 启动一个用于测试的容器。
4:Docker 可以让开发者先在本机上构建一个复杂的程序或架构来进行测试,而不是 一开始就在生产环境部署、测试。

Docker常用操作命令
启动Docker: service docker start
停止Docker: service docker stop
重启Docker: service docker restat
列出Image: docker image ls
拉取Image: docker image pull XXX(仓库地址)
docker image pull library/hello-world
上面代码中,docker image pull是抓取 image 文件的命令。library/hello-world是 image 文件在仓库里面的位置,其中library是 image 文件所在的组,hello-world是 image 文件的名字。
删除Image: docker image rm 镜像名/镜像id
创建容器
docker run [option] 镜像名
常用可选参数
-i 表示以交互模式运行容器
-t 表示容器启动后会进入其命令行,加上这两个参数后,容器创建就能登陆进去,即分配一个伪终端
–name 为创建的容器命名
-v 表示目录映射关系,可以使用多个-v 做多个目录或文件映射
-d 在run后面加上-d参数,则会创建一个守护式容器在后台运行(如果只加-i, -t两个参数,创建后就会自动入容器)
-p 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
-e 为容器设置环境变量
–network=host 表示将主机网络环境映射到容器中,容器的网络与主机相同
交互式容器: docker run -it --name=test ubuntu /bin/bash
守护式容器: docker run -it -name=test ubuntu
进入已运行的容器
docker exec -it 容器id/容器名 进入后执行第一个命令
查看正在运行的容器: docker container ls
查看所有容器,包括停止运行的: docker container ls --all
停止容器: docker container stop 容器名/容器id
启动容器: docker container start 容器名/容器id
删除容器: docker container rm 容器名/容器id
将容器保存为镜像: docker commit 容器名 镜像名
将镜像打包成文件,拷贝给别人使用: docker save -o 保存的文件名 镜像名
docker save -o ./ubuntu.tar ubuntu
将镜像文件加载到本地
docker load -i ./ubuntu.tar
Docker与虚拟机的区别
1:Docker启动快速属于秒级别,虚拟机通常需要几分钟去启动
2:Docker需要的资源更少,Docker在操作系统级别进行虚拟化,Docker容器和内核交互,几乎没有性能损耗
3:Docker更轻量,Docker的架构共用一个内核与共享应用程序,所以占用内存极小,同样的硬件环境,Docker运行的镜像远多于虚拟机的数量,对系统的利用率非常高
4:相对于虚拟机,Docker隔离性更弱,Docker属于进程之间的隔离,虚拟机是系统级别的隔离
5:安全性:Docker隔离性更弱,Docker的租户root和宿主机root等同,一旦容器内的用户从普通用户权限提升为root权限,它就直接具备了宿主机的root权限,进而可进行无限制的操作
6:可管理性: Docker的集中化管理工具还是不算成熟
7:高可用和可恢复性: Docker对业务的高可用支持是通过快速重新部署实现的,虚拟机具备负载均衡,高可用,容错,迁移和数据保护的成熟保障机制
8:快速创建,删除:虚拟化创建是分钟级别的,Docker容器创建是秒级别的,Docker的快速迭代性,决定了无论是开发还是测试 部署都可以节约大量时间

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Enougme

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值