1、docker的意义
2.1.程序在我这跑得好好的,在你那怎么就不行呢?! 这是一个典型的应用场景,Docker image中包含了程序须要的全部的运行时依赖,好比java的程序,确定要在image中包含jdk;好比Python的程序,确定要在image中包含对应版本的Python解释器。程序在我这跑得好好的,去你那就不行了,显然是环境问题。Docker把整个运行时环境打包放到image中,因此搞定了环境依赖问题!
:Docker解决了运行环境和配置问题,方便发布,也就方便作持续集成。代码 + 运行环境 + 配置 + 依赖的服务,Docker image中包含了运行环境+配置,这对部署至关友好
2.更轻量的虚拟化,节省了虚拟机的性能损耗
3.构建Docker镜像应该遵循哪些原则?java
总体远侧上,尽可能保持镜像功能的明确和内容的精简,要点包括: linux
4.如何控制容器占用系统资源(CPU,内存)的份额
在使用docker create命令建立容器或使用docker run 建立并运行容器的时候,能够使用-c|–cpu-shares[=0]参数来调整同期使用CPU的权重,使用-m|–memory参数来调整容器使用内存的大小。
5.Docker的默认存放位置是/var/lib/docker,若是但愿将Docker的本地文件存储到其余分区,能够使用Linux软链接的方式来作。
6.Docker的配置文件放在那里。如何修改配置
Ubuntu系统下Docker的配置文件是/etc/default/docker,CentOS系统配置文件存放在/etc/sysconfig/docker
7.Docker与LXC(Linux Container)有何不一样
LXC利用Linux上相关技术实现容器,Docker则在以下的几个方面进行了改进:nginx
移植性:经过抽象容器配置,容器能够实现一个平台移植到另外一个平台;
镜像系统:基于AUFS的镜像系统为容器的分发带来了不少的便利,同时共同的镜像层只须要存储一份,实现高效率的存储;
版本管理:相似于GIT的版本管理理念,用户能够更方面的建立、管理镜像文件;
仓库系统:仓库系统大大下降了镜像的分发和管理的成本;
周边工具:各类现有的工具(配置管理、云平台)对Docker的支持,以及基于Docker的Pass、CI等系统,让Docker的应用更加方便和多
2、docker 的常规命令
安装 docker
yum clean all
yum install -y docker-engine docker-engine-selinuxdocker
设置开机启动,启动 docker 服务
systemctl enable docker
systemctl start dockercentos
系统刚刚配置完是没有镜像的
查看系统镜像
docker images缓存
从官方源搜索镜像
docker search busybox安全
下载镜像
docker pull busybox
网上直接下载镜像
上传镜像
docker push busyboxbash
把本地的镜像备份为 tar 包
docker save busybox(已经存在的镜像名) >busybox.taride
把备份的tar包导入到本机镜像
docker load <busybox.tar工具
练习导入镜像
一、查看容器
docker ps
二、建立一个 bash 交互的容器
docker run -it centos /bin/bash
三、建立一个非交互的容器
docker run nginx
docker run -itd centos /bin/bash
查看镜像列表
docker images
查看镜像制做历史docker history busybox
查看镜像底层信息
docker inspect busybox
下载镜像docker pull busybox
上传镜像docker push
删除本地镜像docker rmi busybox
镜像另存为tar包docker save busybox >busybox.tar
使用tar包导入镜像
docker load <busybox.tar
搜索镜像
docker search busybox
修改镜像名称和标签
docker tag busybox:latest busybox:v1
容器相关命令
以交互模式启动一个容器
docker run -it centos bash
启动的容器放在后台
docker run -itd centos bash
显示正在运行的容器
docker ps
显示全部容器
docker ps -a
显示全部容器,但只显示 id
docker ps -aq
启动,中止,重启容器
docker start|stop|restart 容器id
进入容器
docker exec -it 容器id /bin/bash
链接容器 console,exit 退出会致使容器关闭,能够使用 CTRL +(p,q) 退出
docker attach 容器id
显示容器详细信息
docker inspect 容器id
查看容器内运行的进程
docker top 容器id
删除容器
docker rm 容器id
关闭全部容器docker stop $(docker ps -aq)docker rm $(docker ps -aq)