Docker的基本概念及安装使用(一)

今天我们开始分享docker的学习使用:

Docker 简介
Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余 项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了
Apache 2.0 协议,项目代码在 GitHub 上进行维护。 Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC )等技术。 (背景),云计算兴起后,服务器硬件扩展非常便利,软件服务部署成为了瓶颈,docker 趁势而兴。
为什么用 Docker
容器的启动可以在秒级实现,比传统的虚拟机方式要快得多 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器 docker 的出现,让开发 / 测试 / 线上的环境部署,成为便利一条龙。
更快速的交付和部署
对开发和运维( devop )人员来说,最希望的就是一次创建或配置,可以在任意地方正 常运行。开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直 接使用这个容器来部署代码。 Docker 可以快速创建容器,快速迭代应用程序,并让整个过 程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。 Docker 容器 很轻很快!容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。
更高效的虚拟化
Docker 容器的运行不需要额外的 hypervisor 支持,它是内核级的虚拟化,因此可以实 现更高的性能和效率。
更轻松的迁移和扩展
Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、 个人电脑、服务器等。 这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外 一个。
更简单的管理
使用 Docker ,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以 增量的方式被分发和更新,从而实现自动化并且高效的管。
对比传统虚拟机总结

Docker 基本概念
Docker 架构
host --- 主机载体 == docker 安装的地方
继承类比:
Class2
extents
Class1
---------------------- Object o = new Class2
-------------------------------------- 此时, o 对象的结构中,有 Class1 的成员结构
image2 extents
image1
----------------------Container c = new image2
------------------------------------- 此时, c 容器中,有 image1 的文件
Docker 镜像
Docker 镜像就是一个只读的模板。
例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了 Apache 或 用户需要的其它应用程序。 镜像可以用来创建 Docker 容器。
Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接 从其他人那里下载一个已经做好的镜像来直接使用。
Docker 容器
Docker 利用容器来运行应用。 容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互 隔离的、保证安全的平台。
可以把容器看做是一个简易版的 Linux 环境(包括 root 用户权限、进程空间、用户空 间和网络空间等)和运行在其中的应用程序。
Docker 仓库
仓库是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器( Registry )混为 一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含 了多个镜像,每个镜像有不同的标签(tag )。 仓库分为公开仓库(Public )和私有仓库( Private )两种形式。 最大的公开仓库是 Docker Hub ,存放了数量庞大的镜像供用户下载。 当然,用户也可以在本地网络内创建一个私有仓库。 当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这 样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。
容器、镜像的运行关系
安装 Docker
CentOS7
CentOS7 系统 CentOS-Extras 库中已带 Docker ,可以直接安装:
查看 docker 版本
docker version
docker info
启动 docker
sudo service docker start
设置随系统启动
sudo chkconfig docker on
Docker 基本操作
容器操作
docker [run|start|stop|restart|kill|rm|pause|unpause]
run/create[ 镜像名 ] 创建一个新的容器并运行一个命令
start/stop/restart [ 容器名 ] :启动 / 停止 / 重启一个容器
kill [ 容器名 ] : 直接杀掉容器,不给进程响应时间
rm [ 容器名 ] :删除已经停止的容器
pause/unpause [ 容器名 ] :暂停 / 恢复容器中的进程
docker [ps|inspect|exec|logs|export|import]
ps :查看容器列表(默认查看正在运行的容器, -a 查看所有容器)
inspect [ 容器名 ] :查看容器配置元数据
exec -it [ 容器名 ] /bin/bash :进入容器环境中交互操作
logs --since="2019-02-01" -f --tail=10 [ 容器名 ]: 查看容器日志
cp path1 [ 容器名 ] :path 容器与主机之间的数据拷贝
export -o test.tar [ 容器名 ] / docker export [ 容器名 ] >test.tar : 文件系统作为一个 tar 归档文件
import test.tar [ 镜像名 : 版本号 ]: 导入归档文件,成为一个镜像 镜像操作
docker images|rmi|tag|build|history|save|load]
images :列出本地镜像列表
rmi [ 镜像名:版本 ] :删除镜像
tag [ 镜像名:版本 ] [ 仓库 ]/[ 镜像名:版本 ] 标记本地镜像,将其归入某一仓库
build -t [ 镜像名:版本 ] [path] Dockerfile 创建镜像
history [ 镜像名:版本 ] : 查看指定镜像的创建历史
save -o xxx.tar [ 镜像名:版本 ] / save [ 镜像名:版本 ] >xxx.tar : 将镜像保存成 tar 归档文件
load --input xx.tar / docker load<xxx.tar : 从归档文件加载镜像
容器创建详解
交互式创建容器并进入:
docker run -it --name centos centos /bin/bash (前台进程)
------------------------exit 退出也关闭容器 ; Ctrl+P+Q 退出不关闭容器
后台启动容器:
docker run -d --name nginx nginx
进入已运行的容器:
docker exec -it nginx /bin/bash
查看容器的元数据: docker inspect nginx
绑定容器端口到主机:
docker run -d -p 8080:80 --name nginx nginx:latest
挂载主机文件目录到容器内:
docker run -dit -v /root/peter_dir/:/pdir --name cent centos
复制主机文件到容器内:
docker cp anaconda-ks.cfg cent:/var

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

寅灯

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

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

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

打赏作者

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

抵扣说明:

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

余额充值