容器技术的核心有以下几个内核技术组成:
CGroups(Control Groups)-资源管理NameSpace-进程隔离
SELinux安全
优势
传统虚拟机需要给每个VM安装操作系统容器使用的共享公共库和程序
启动非常快速
劣势
容器的隔离性没有虚拟化强
共用Linux内核,安全性有先天缺陷SELinux难以驾驭
监控容器和容器排错是挑战
docker 安装
把软件 docker-engine docker-engine-selinux 拷贝到私有yum仓库,运行 createrepo .
安装 docker
yum clean all
yum install -y docker-engine docker-engine-selinux
或cd docker
yum install -y *.rpm (当前目录下YUM安装也可以解决依赖)
设置开机启动,启动 docker 服务
systemctl enable docker
systemctl start docker
系统刚刚配置完是没有镜像的
查看系统镜像
docker images
国外镜象
https://hub.docker.com/
国内刀客
http://daocloud.io/
从官方源搜索镜像,最好使用星多的,官方的
docker search busybox
下载镜像,pull + 镜像名字 ,
docker pull busybox
上传镜像
docker push busybox
把本机镜像备份为 tar 包
docker save busybox >busybox.tar
把备份的tar包导入到本机镜像
docker load < busybox.tar
练习导入镜像
1、查看运行的容器
docker ps
docker ps -a
第一列容器ID 第二列容器镜像 第三列命令 最后另一列容器名字
docker run centos echo hello #若没centos会自动下载安装后执行
2、创建一个 bash 交互的容器
docker run -it centos /bin/bash
退出不关闭容器
ctrl+q+p
再用docker ps 查看是否存在
3、创建一个非交互的容器
docker run nginx
docker run -itd centos /bin/bash
命令列表
– docker images //查看镜像列表
– docker history //查看镜像制作历史
– docker inspect //查看镜像底层信息
– docker pull //下载镜像
– docker push //上传镜像
– docker rmi //删除本地镜像
– docker save //镜像另存为tar包
– docker load //使用tar包导入镜像
– docker search //搜索镜像
– docker tag //修改镜像名称和标签
查看镜像列表
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 //运行容器
– docker ps //查看容器列表
– docker stop //关闭容器
– docker start //启动容器
– docker restart //重启容器
– docker attach|exec //进入容器
– docker inspect //查看容器底层信息
– docker top //查看容器进程列表
– docker rm //删除容器
以交互模式启动一个容器
docker run -it centos bash
启动的容器放在后台
docker run -itd centos bash
显示正在运行的容器
docker ps
显示所有容器
docker ps -a
显示所有容器,单只显示 id
docker ps -aq
启动,停止,重启容器
docker start|stop|restart 容器id #id 可以TAB
进入容器
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)
强制关闭所有容器
docker rm -f $(docker ps -aq)
启动容器并设置主机名为dbserver1
docker run -h dbserver1 -itd centos bash
练习:
1、配置物理主机使用网易开源镜像站点作为yum源
http://mirrors.163.com http://mirrors.aliyun.com/
2、在线安装docker
[[email protected] pub]# yum install -y docker
3、起动服务
4、查找busybox
[[email protected] pub]# docker search busybox
5、下载busybox
[[email protected] pub]# docker pull busybox
6、查看镜像
[[email protected] pub]# docker images
7、导出busybox
[[email protected] pub]# docker save busybox > /tmp/busybox.tar
8、将导出的镜像拷贝到虚拟主机,并导入
[[email protected] docker_images]# docker load < /tmp/busybox.tar
使用docker
1、通过镜像起动容器
[[email protected] docker_images]# docker run centos echo hello
2、查看运行状态的容器
[[email protected] docker_images]# docker ps
因为echo hello已经运行结束,所以容器停止了
3、查看所有的容器
[[email protected] docker_images]# docker ps -a
第一列是容器的id,第二列是容器基于的镜像,第三列是运行的命令,最后一列是容器的名字
4、起动容器,并进入容器操作
[[email protected] docker_images]# docker run -it centos bash
5、起动容器后,如果想返回宿主机,但是不想停止容器,可以使用组合键ctrl+q+p
6、删除本地镜像
[[email protected] docker_images]# docker rmi centos
注意:如果有容器正在使用该镜像,则无法删除
7、停止容器
[[email protected] docker_images]# docker stop e4e<tab>
e4e是容器id开头的3个字符
8、删除容器
[[email protected] docker_images]# docker rm e4e<tab>
原文地址:http://blog.51cto.com/13478354/2083196