• 容器技术已经成为应用程序封装和交付的核心技术
• 容器技术的核心有以下几个内核技术组成:
– CGroups(Control Groups)-资源管理
– NameSpace-进程隔离
– SELinux安全
• 由于是在物理机上实施隔离,启动一个容器,可以像启动一个进程一样快速
• Docker是完整的一套容器管理系统
• Docker提供了一组命令,让用户更加方便直接地使用容器技术,而丌需要过多关心底层内核技术
Docker优点
相比于传统的虚拟化技术,容器更加简洁高效,不用装操作系统。
• 传统虚拟机需要给每个VM安装操作系统
• 容器使用的共享公共库和程序
Docker的缺点
• 容器的隔离性没有虚拟化强
• 共用Linux内核,安全性有先天缺陷
• SELinux难以驾驭
• 监控容器和容器排错是挑战
createrepo /var/www/html/docker/
cd /var/www/html/docker
docker-engine-1.12.1-1.el7.centos.x86_64.rpm
docker-engine-selinux-1.12.1-1.el7.centos.noarch.rpm
repodata
配yum源
vim /etc yum.repos.d/docker.repo
[docker]
name=docker
baseurl=http://192.168.4.254/docker
enabled=1
gpgcheck=0
• 需要64位操作系统
• 至少RHEL6.5以上的版本,强烈推荐RHEL7
• 关闭防火墙(必须)
yum -y install docker-engine
systemctl restart docker
systemctl enable docker
• 在Docker中容器是基于镜像启动的
• 镜像是启动容器的核心
• 镜像采用分层设计
• 使用快照的COW技术,确保底层数据不丢失
• https://hub.docker.com
• Docker官方提供公共镜像的仓库(Registry)
– docker images //查看镜像列表
– docker history //查看镜像制作历程
– docker inspect //查看镜像底层信息
– docker pull //下载镜像
– docker push //上传镜像
– docker rmi //删除本地镜
像(启动容器时删除镜像会提示错误)
– docker save //镜像另存为tar包
– docker load //使用tar包导入镜像
– docker search //搜索镜像
– docker tag //修改镜像名称和标签 (重命名镜像名称【复制】
docker run -it 镜像 运行命令 (不知道可以不写) ##前端进程
docker run -d 镜像 运行命令(不知道可以不写) ##后段进程
docker run -it centos /bin/bash
– docker run //运行容器
– docker ps //查看容器列表
– docker stop //关闭容器
– docker stop $(docker ps) //批量关闭容器
– docker start //启动容器
– docker restart //重启容器
– docker attach|exec //进入容器
–(docker attach 进入容器,exit会导致容器关闭
– docker exec 进入容器,退出时不会关闭容器)(生产环境下慎用这个)
docker exec -it 容器ID 命令
– docker inspect //查看容器底层信息
– docker top //查看容器进程列表
– docker rm //删除容器
– docker rm $(docker ps -aq) //批量删除容器
– docker rm $(docker stop $(docker ps -aq))
进入一个已经运行的容器
docker exec -it 容器id /bin/bash
连接一个已经运行容器的 pid为1 的进程
退出后容器会结束,如果不想结束需要把容器放入后台(ctrl + pq)
docker attach 容器id
– docker ps 查看正在运行的容器
– docker ps -a 查看所有容器列表
– docker ps -aq 仅显示容器i
– docker stop 关闭容器
– docker start 开启容器
– docker restart 重启容器