一、docker概述
1.docker是在Linux里运行应用的开源工具,是一种轻量级虚拟机
2.它的设计宗旨是通过对应用组件的封装、发布、部署、运行等生命周期的管理,达到应用组件级别的一次封装,到处运行的目的
3.docker的三大核心概念:镜像、容器、仓库,安装docker以及围绕镜像和容器的具体操作
1)镜像:docker的镜像是创建容器的基础,可以理解为一个面向docker容器引擎的只读模板
2)容器:docker的容器是从镜像创建的运行实例,他可以被启动、停止和删除。所创建的每个容器都是相互隔离、互不可见的,可以把容器看做是一个精简版的Linux系统
3)仓库:docker仓库是用来集中保存镜像的地方,使用push命令来上传自己创建的镜像到公共仓库,使用pull下载公共仓库的镜像,目前最大的公共仓库是docker hub
三、安装docker
可以在centos6中安装,但可能并不稳定,当前系统:centos7.2
1.配置docker的yum仓库
vim /etc/yum.repos.d/docker.repo
[docker-repo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enable=1
gpgcheck=0
gpgkey=https://yum.dockerproject.org/gpg
2.安装docker
1)安装
yum -y install docker-engine
2)启动设置开机启动
systemctl start docker.service
systemctl enable docker.service
3)安装好的docker有两个程序:docker服务端和docker客户端,服务端是一个服务进程,客户端是服务端的远程控制器,大部分情况下服务端和客户端都运行在同一台机器上
四、docker镜像操作
1.从远端官方仓库搜索镜像
docker search 关键字
2.获取镜像
docker pull 仓库名 [:标签]
3.查看本地所有镜像
docker images
#repository:镜像属于的仓库
#tag:镜像的标签信息,标记同一仓库中的不同镜像
#image id:镜像的唯一ID号
#created:镜像创建的时间
#virtual size:镜像的大小
4.为本地镜像添加新的标签
docker tag 名称 :[标签] 新名称 :[新标签]
5.删除镜像
docker rmi 仓库名:标签
6.存储镜像:将镜像保存为本地文件
docker save -o 存储文件名 存储的镜像
docker save -o lamp centos
7.载入镜像:将存储的镜像从A主机拷贝到B主机
docker load < 存储的文件名
例:docker load < lamp
或
docker --input 存储的文件
例:docker --input lamp
五、docker容器操作
1.创建容器
docker create [选项] 镜像 运行的程序
docker create -it daocloud.io/centos /bin/bash
# -i:让容器的输入保持打开
# -t:让docker分配一个伪终端
2.查看容器状态
docker ps -a
#-a:所有容器,包括已启动和未启动的
3.启动容器
docker start 容器的id或名称
4.停止容器
docker stop 容器id或名称
5.进出容器
docker exec -it 容器id或名称 /bin/bash
例:docker exec -it centos3 /bin/bash
6.创建、取名、启动并进入容器
docker run --name 容器名 -it 镜像名 要运行的程序
例:docker run -name test -i -t daocloud.io/centos /bin/bash
7.导出容器
docker export 容器id或名称 > 文件名
8.导入容器:将导出的文件用docker import命令导入成为镜像
cat 文件名 | docker import - 生成的镜像名称:标签
cat /docker/centos3 | docker import - centos:6
9.删除容器
docker rm 容器名或ID
10.查看容器IP
docker inspect --format '{{ .NetworkSettings.IPAddress }}' 容器名
六、docker资源控制
1.限制CPU使用速率
docker run --cpu-quota 使用率 容器名
#百分比是以1000为单位
例:
docker run --cpu-quota 20000 centos
#将容器centos的CPU使用率限定为20%
2.多任务按比例分享CPU
docker run --cpu-shares 1024 容器A
docker run --cpu-shares 1024 容器B
docker run --cpu-shares 2048 容器C
#将容器A、B、C的CPU资源比例分配为1:1:2
3.限制CPU内核使用
假如服务器有16个内核,编号分别为0-15,使容器绑定在第1-4个内核使用
docker run --cpuset-cpu 0,1,2,3 容器名
4.对内存使用的限制
一旦容器使用的内存超过了容量,内核就会尝试收回这些内存,如果无法收回,进程就会被杀死
docker run -m 512m centos
#将容器centos的内存限制为512M
5.对blkio的限制
如果是在一台服务器上进行容器的混合部署,那么会出现同时有几个程序写磁盘数据的情况,这时可以通过–device-write-iops选项来限制写入的iops,相应的还有–device-read-bps选项可以限制读取的iops。但是这种方法只能针对blkio限制的是设备(device) ,而不是分区。相应Cgroup写配置文件/sysfs/cgroupbikio/docker容器ID/blikio.throttle.write iops device。
docker run --devicc-write-bps /dev/sda1:1mb容器名
#限制容器的/dev/sdal的写入ipos为1MB
谢谢阅读
转载:https://blog.csdn.net/sixisixsix/article/details/102483727
查看评论