Docker的镜像是建立容器的基础,相似虚拟机的快照,能够理解为是一个面向Docker容器引擎的只读模板,好比一个镜像能够是一个完整的centos操做系统,也能够是一个安装了MySQL的应用程序,称之为一个镜像。
镜像文件用户能够本身建立和更新现有镜像,也能够从网上下载已经作好的应用镜像直接使用。docker
容器是镜像的另外一个运行实例,是独立运行的一个或一组应用以及他们所必须的运行环境,包括文件系统、系统库类、shell环境等。镜像是只读模板,而容器会给这个只读模板一个额外的可写层。shell
仓库是用来集中存放镜像的地方,当本身建立了镜像后,可使用push命令将它上传到公共仓库(Public)或者私有仓库(Private),这样,当其余机器想要使用时,直接下载下来便可使用。apache
docker search httpdcentos
对于docker来讲,若是下载镜像时不指定标签,则默认会下载仓库中最新版,所以也可经过制定标签来下载指定版本,这里的标签(tag)就是用来区分镜像版本的。bash
docker pull httpd服务器
整个下载过程能够看出,镜像文件由若干层(Layer)组成,咱们称之为AUFS(文件联合系统),是实现增量保存与更新的基础,下载过程当中会输出镜像的各层信息 tcp
docker imageside
REPOSITORY ---镜像属于的仓库 TAG ---镜像的标签信息,标记同一个仓库中不一样镜像 IMAGE ID ---镜像的惟一ID号,惟一标识了该镜像 CREATED ---镜像建立时间 SIZE ---镜像大小
docker inspect 11426a19f1a2操作系统
命令格式:docker tag 镜像名称:[标签] 新名称:[新标签]
3d
docker tag httpd apache:apache1
方法二:docker rmi 镜像ID号
<br/>命令格式:docker save -o 存储文件名 存储的镜像<br/>
docker save -o apache2 httpd
命令格式:docker load < 存出的镜像文件 或者: docker --input 存出的镜像文件
本地存储的镜像文件愈来愈多,就要一个专门的地方存放这些镜像---仓库。目前比较方便的就是公共仓库,默认上传的是Docker hub官方仓库,须要注册帐号完成登陆后才能上传。
docker tag httpd apache:test
docker login
Username: madeb //此帐号需本身注册 Password: Login Succeeded
docker push apache:test
docker logout
<br/>命令格式:docker create [选项] 镜像 运行的程序<br/>
-i 让容器的输入保持打开 -t 让Docker分配一个伪终端
docker create -it httpd /bin/bash
docker ps -a
docker start e1e05c66ec9c //开启容器
docker ps -a
docker run httpd /usr/bin/bash -c ls /
docker run -d httpd /usr/bin/bash -c ls / "while true; do echo hello;done"
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e1e05c66ec9c httpd "/bin/bash" 26 minutes ago Up 25 minutes 80/tcp friendly_euclid
docker stop e1e05c66ec9c
命令格式:docker exec -it e1e05c66ec9c /bin/bash -i 表示让容器的输入保持打开 -t 表示让docker分配一个伪终端
docker exec -it e1e05c66ec9c /bin/bash
<br/>命令格式:docker export 容器ID/名称 > 文件名<br/>
docker export e1e05c66ec9c > apache1
<br/>命令格式:cat 文件名 | docker import - 生成的镜像名称:标签<br/>
cat apache1 | docker import - apache1 注:此处必须先使用cat,否则没法导入
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE apache1 latest 2bfb89eb2c5d 49 seconds ago 174MB apache apache1 11426a19f1a2 8 days ago 178MB httpd latest 11426a19f1a2 8 days ago 178M
<br/>命令格式:docker rm 容器ID/名称<br/>
docker rm e1e05c66ec9c
docker ps -a | grep e1e05c66ec9c
docker默认的存储目录在本地/var/lib/docker/,docker的镜像、容器、日志等内容所有都存储在这里,也可单独使用大容量分区来存储这些内容,而且通常选择LVM逻辑卷,从而避免出现docker运行过程当中存储目录容量不足的问题。
docker run --cpu-quota 20000 e1e05c66ec9c //cpu的使用率限定为20%
echo 20000 > /sys/fs/cgroup/cpu/docker/e1e05c66ec9ced2d6290ebe8e3fdea27f439dcbeea70921ec5d9e5b0bcffaf11/cpu.cfs_quota_us
docker run --cpu-shares 1024 容器A docker run --cpu-shares 1024 容器B docker run --cpu-shares 2048 容器C
docker run --cpuset-cpus 0,1,2,3 容器名
docker run -m 512m 容器名 //限制容器的内存为512m
docker run --device-write-bps /dev/sda1:1mb 容器名 //限制容器的/dev/sda1的写入ipos为1MB