docker使用基础总结
2015-09-21 13:37
706 查看
一、基础知识
Docker特性:
1.启动速度为秒级,共享Kernel几乎没有性能损耗,资源消耗小
2.提供隔离的运行环境
-文件系统隔离
-网络隔离
-进程号隔离
-进程间通信隔离
3.提供资源限制
-CPU计算资源
-内存资源
-磁盘I/O资源
4.一个容器只干一件事情
保证容器提供服务的服务质量并且可以降低容器之间的相互干扰
5.docker镜像是分层的,比如把一个centos启动成容器,然后装一个服务保存,就是在原本的镜像层上又加了一层
隔离的原理
CGroups:限制容器的资源使用,
Namespace机制实现容器间的隔离
chroot:文件系统的隔离
liunx内核提供的限制,记录和隔离进程组所使用的资源
通过不同的子系统来实现对不同资源使用的控制和记录
docker的守护进程和客户端的连接方式
通过socket链接
unix:///var/run/docker.sock
tcp://host:port
fd://socketfd
docker的运行模式
用户可以通过命令行的接口或者自定义的应用和客户端连接,客户端可以是docker提供的二进制程序、shell中运行的docker命令、用户自定义的程序,程序是通过remoteAPI来调用docker的服务,docker的客户端和服务端通过socket连接,这种连接意味着docker的客户端和服务端既可以在同一台机器上运行也可以在不同的机器上运行,docker的客户端可以通过远程访问的方式来访问docker服务端
二、命令操作
镜像操作
下载镜像
上传镜像
本文出自 “翟军铭的linux博客” 博客,请务必保留此出处http://zhaijunming5.blog.51cto.com/10668883/1696721
Docker特性:
1.启动速度为秒级,共享Kernel几乎没有性能损耗,资源消耗小
2.提供隔离的运行环境
-文件系统隔离
-网络隔离
-进程号隔离
-进程间通信隔离
3.提供资源限制
-CPU计算资源
-内存资源
-磁盘I/O资源
4.一个容器只干一件事情
保证容器提供服务的服务质量并且可以降低容器之间的相互干扰
5.docker镜像是分层的,比如把一个centos启动成容器,然后装一个服务保存,就是在原本的镜像层上又加了一层
隔离的原理
CGroups:限制容器的资源使用,
Namespace机制实现容器间的隔离
chroot:文件系统的隔离
liunx内核提供的限制,记录和隔离进程组所使用的资源
通过不同的子系统来实现对不同资源使用的控制和记录
docker的守护进程和客户端的连接方式
通过socket链接
unix:///var/run/docker.sock
tcp://host:port
fd://socketfd
docker的运行模式
用户可以通过命令行的接口或者自定义的应用和客户端连接,客户端可以是docker提供的二进制程序、shell中运行的docker命令、用户自定义的程序,程序是通过remoteAPI来调用docker的服务,docker的客户端和服务端通过socket连接,这种连接意味着docker的客户端和服务端既可以在同一台机器上运行也可以在不同的机器上运行,docker的客户端可以通过远程访问的方式来访问docker服务端
二、命令操作
镜像操作
下载镜像
docker pull centos
上传镜像
docker push centos删除镜像
docker rmi imageID打标签
docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]列出镜像
docker images导出镜像
docker save -o image.tar 镜像名称+tag导入镜像
docker load --input tar包名称查找镜像:从官方仓库中
docker search centos构建镜像:把镜像启动起来就是容器然后进行修改,修改完exit退出,commit命令保存
docker commit imageID列出镜像
docker images容器操作启动容器
docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...] docker run -t -i centos:latest /bin/bash docker run --help -i:交互式操作 -t:分配一个tty -d:后台运行2、启动容器
docker run -t -i centos:latest /bin/bash如果不指定具体的标记,则默认使用 latest 标记信息3、容器基本使用
容器生命周期管理 docker [run|start|stop|restart|kill|rm|pause|unpause] 容器操作运维 docker [ps|inspect|top|attach|events|logs|wait|export|port] 镜像仓库 docker [login|pull|push|search]4.不进入容器对容器进行操作
docker run image_name yum install -y app_name5.停止一个容器
docker stop CONTAINER_ID6.启动一个停止的容器,并附着
docker start CONTAINER_ID docker attach CONTAINER_ID #需要多敲一次回车7.重启一个容器
docker restart CONTAINER_ID8.删除一个容器
docker rm CONTAINER_ID9.列出某个容器与宿主机之间的端口映射关系
docker port CONTAINER_ID10.docker删除所有stop的容器
docker rm $(docker ps -q -a)脚本还原images并跟系统已有镜像对比,如果系统不存在这个镜像,就还原
#!/bin/bash c=`docker images | awk '{print $1}' | grep -v REPOSITORY` #过滤出镜像名称 echo $c >> images.txt #把所有镜像名称追加到 for i in `ls *.tar` #tar包名赋值给i do a=`echo $i | awk -F '.' '{print $1}'` #去掉.tar grep "$a" images.txt #查询$a是否在文件中 if [ $? != 0 ] #返回值不为0就是 then cat $i | docker import - $a #就还原 else continue fi done
本文出自 “翟军铭的linux博客” 博客,请务必保留此出处http://zhaijunming5.blog.51cto.com/10668883/1696721
相关文章推荐
- docker学习笔记(二)导入导出镜像
- MAC下安装docker教程
- 利用Dockerfile构建一个基于centos 7,包括java 8, tomcat 7,php ,mysql+mycat的镜像
- 如何在 Docker 容器中运行支持 OData 的 JBoss 数据虚拟化 GA
- CentOS 7 中 Docker 的安装
- 在DaoCloud平台部署基于Docker镜像的应用
- dockerfile 使用方法
- Docker命令行探秘
- docker学习笔记(一)
- 基于Docker部署codis
- 使用Docker和Rancher运行你自己的ELK环境。
- docker mysql 主从配置
- Docker 构建Tomcat镜像
- Docker 构建redis镜像
- ubuntu 下使用docker 运行mysql
- ubuntu 安装最新版docker
- 增加Docker cgroup命令
- docker数据卷和主机共享文件
- docker的网络、端口映射和容器间通信
- docker的资源隔离---cpu、内存、磁盘限制