docker

image.png

云计算分类:
LaaS:基本设施级服务
PaaS:平台级服务
SaaS:软件级服务(例wps:不需要装客户端软件,通过浏览器直接编辑,保存到提供商服务器)
dSaaS:存储级服务
CaaS: container as a service:容器级服务

容器其实是一种沙盒技术。顾名思义,沙盒就是能够像一个集装箱一样,把你的应用"装"起来的技术。这样,应用与应用之间,就因为有了边界而不至于相互干扰;而被装进集装箱的应用,也可以被方便地搬来搬去,这其实是 PaaS 最理想的状态。
容器的本质是进程。容器就是未来云计算系统中的进程;容器镜像就是这个系统里的".exe"安装包。Kubernetes 就是操作系统!

Docker三大核心组件:
Docker 镜像 - Docker images
Docker 仓库 - Docker registeries
Docker 容器 - Docker containers

Docker 容器:
Docker 容器和文件夹很类似,一个Docker容器包含了所有的某个应用运行所需要的环境。每一个 Docker 容器都是从 Docker 镜像创建的。Docker 容器可以运行、开始、停止、移动和删除。每一个 Docker 容器都是独立和安全的应用平台,Docker 容器是 Docker 的运行部分。

环境准备

centos7 64位
升级内核到4以上


image.png

部署:

yum -y install docker

启动 Docker 服务:

service docker start
chkconfig docker on

CentOS 7    
systemctl start docker.service
systemctl enable docker.service
image.png

查看docker基本信息:

docker info

使用 Docker 的时候,需要经常从官方获取镜像,但是由于显而易见的网络原因,拉取镜像的过程非常耗时,严重影响使用 Docker 的体验。因此 DaoCloud 推出了加速器工具解决这个难题,通过智能路由和缓存机制,极大提升了国内网络访问 Docker Hub 的速度,目前已经拥有了广泛的用户群体,并得到了 Docker 官方的大力推荐。
如果您是在国内的网络环境使用 Docker,那么 Docker 加速器一定能帮助到您。
https://www.daocloud.io/mirror

docker使用

镜像操作

搜索镜像:
这种方法只能用于官方镜像库
搜索基于 centos 操作系统的镜像

docker search centos
docker pull docker.io/centos:centos              ##官方库拉取镜像
docker pull daocloud.io/library/centos       ##从docker加速器下载(国内)--->速度会更快
image.png

查看本地镜像:
docker images

image.png

查看镜像详情:
docker image inspect "镜像id"

删除镜像:
删除一个或多个,多个之间用空格隔开,可以使用镜像名称或id
docker rmi daocloud.io/library/mysql

强制删除:--force
如果镜像正在被使用中可以使用--force强制删除
docker rmi docker.io/ubuntu:latest --force

删除所有镜像:
docker rmi $(docker images -q)

只查看所有镜像的id:
docker images -q

镜像迁移:
保存一台宿主机上的镜像为tar文件,然后可以导入到其他的宿主机上:
save
Save an image(s) to a tar archive
将镜像打包,与下面的load命令相对应
docker save -o centos.tar daocloud.io/library/centos
自定义名 镜像名或ID

image.png

导入
Load an image from a tar archive or STDIN
与上面的save命令相对应,将上面sava命令打包的镜像通过load命令导入
docker load < nginx.tar

注:
1.tar文件的名称和保存的镜像名称没有关系
2.导入的镜像如果没有名称,自己打tag起名字
注意:
如果导入镜像时没有起名字,随后可以单独起名字(没有名字和tag),可以手动加tag
docker tag 镜像ID mycentos:7

容器操作

同一个镜像可以启动多个容器,每次执行run子命令都会运行一个全新的容器
启动一个容器:
docker run -it 0f3e07c0138f /bin/bash
或者
docker run -itd daocloud.io/library/centos:latest /bin/bash

image.png

-i
捕获标准输入输出
-t
分配一个终端或控制台
-p 80:80
暴露80端口
--restart=always
容器随docker engine自启动,因为在重启docker的时候默认容器都会被关闭
--rm
创建时加--rm退出容器是会自动关闭
默认情况下,每个容器在退出时,它的文件系统也会保存下来,这样一方面调试会方便些,因为你可以通过查看日志等方式来确定最终状态。另一方面,也可以保存容器所产生的数据。

若要断开与容器的连接,并且关闭容器:
容器内部执行如下命令
exit
如果只想断开和容器的连接而不关闭容器:
快捷键:ctrl+p+q
连接容器:
方法1.attach

docker attach 容器id   ##前提是容器创建时必须指定了交互shell

方法2.exec ---->指定编译器/bin/bash
通过exec命令可以创建两种任务:后台型任务和交互型任务
交互型任务:

docker exec -it  容器id  /bin/bash
root@68656158eb8e:/# ls     

后台型任务:

docker run -it -d daocloud.ip/library/nginx:latest /bin/bash

查看容器:

只查看运行状态的容器:
docker ps

docker ps -a
-a  查看所有容器
    
只查看所有容器id:
docker ps -a -q

启动容器:
docker start name

关闭容器:

docker stop  name
docker kill    name      --强制终止容器

杀死所有running状态的容器

docker kill $(docker ps  -q)  

stop和kill的区别:
docker stop命令给容器中的进程发送SIGTERM信号,默认行为是会导致容器退出,当然,容器内程序可以捕获该信号并自行处理,例如可以选择忽略。而docker kill则是给容器的进程发送SIGKILL信号,该信号将会使容器必然退出。

删除容器:

docker rm 容器id或名称
要删除一个运行中的容器,添加 -f 参数

重启容器:
docker restart name

暂停容器:
pause --暂停容器内的所有进程,
通过docker stats可以观察到此时的资源使用情况是固定不变的,通过docker logs -f也观察不到日志的进一步输出。

恢复容器:
unpause --恢复容器内暂停的进程,与pause参数相对应

监控容器的运行:
可以使用logs、top、events、wait这些子命令
logs:(监控)
使用logs命令查看守护式容器
可以通过使用docker logs命令来查看容器的运行日志,其中--tail选项可以指定查看最后几条日志,而-t选项则可以对日志条目附加时间戳。使用-f选项可以跟踪日志的输出,直到手动停止。

docker logs    App_Container   //不同终端操作
docker logs -f App_Container

top:
显示一个运行的容器里面的进程信息
docker top birdben/ubuntu:v1

宿主机和容器之间相互COPY文件
如:容器mysql中/usr/local/bin/存在docker-entrypoint.sh文件,可如下方式copy到宿主机

docker cp mysql:/usr/local/bin/docker-entrypoint.sh   /root

修改完毕后,将该文件重新copy回容器

docker cp /root/docker-entrypoint.sh mysql:/usr/local/bin/      

将容器的文件系统打包成tar文件,也就是把正在运行的容器直接导出为tar包的镜像文件

有两种方式(13c296e6a936为容器ID):
第一种:

docker export -o centos-test.tar 13c296e6a936
image.png

第二种:

docker export 容器名称 > 镜像.tar

导入镜像归档文件到其他宿主机:
import
Import the contents from a tarball to create a filesystem image

docker import centos-test.tar  centos-test:v1
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,193评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,306评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,130评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,110评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,118评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,085评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,007评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,844评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,283评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,508评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,395评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,985评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,630评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,797评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,653评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,553评论 2 352