核心概念
1. 镜像
是一个只读的模板类似于安装系统用到的那个iso文件我们通过镜像来完成各种应用的部署。
2. docker容器
镜像类似于操作系统而容器类似于虚拟机本身。它可以被启动、开始、停止、删除等操作每个容器都是相互隔离的。
3. docker仓库
存放镜像的一个场所仓库分为公开仓库和私有仓库。 最大的公开仓库是Docker hubhub.docker.com国内公开仓库http://dockerpool.com/
一、安装
centos6 上安装(6.5之前版本需要升级一下 yum update )
yum install -y epel-release
yum install -y docker-io
如果是centos7
yum install -y docker
启动docker
/etc/init.d/docker start
二、镜像管理
docker pull centos //从docker.com获取centos镜像如果太慢直接做个加速
先到 https://cr.console.aliyun.com/ 注册一下,登录成功后,在控制台,看左侧,有一个加速器按钮,点开找到自己的专属加速链接,我的是https://u6vpvkfn.mirror.aliyuncs.com
然后vi /etc/sysconfig/docker
最下面增加一行:
other_args="--registry-mirror=https://u6vpvkfn.mirror.aliyuncs.com"
centos7是:OPTIONS="--registry-mirror=https://u6vpvkfn.mirror.aliyuncs.com"
docker images //查看本地都有哪些镜像
docker tag centos syk123 //为centos镜像设置标签为syk123再使用docker images查看会多出来一行改行的image id和centos的一样
docker search (image-name) //从docker仓库搜索docker镜像后面是关键词
docker run -t -i centos /bin/bash //用下载到的镜像开启容器-i表示让容器的标准输入打开-t表示分配一个伪终端要把-i -t 放到镜像名字前面
当该镜像发生修改后我们可以把该镜像提交重新生成一个新版本进行在本地。
docker ps //查看运行的容器
docker rmi centos //用来删除指定镜像 其中后面的参数可以是tag如果是tag时实际上是删除该tag只要该镜像还有其他tag就不会删除该镜像。当后面的参数为镜像ID时则会彻底删除整个镜像连通所有标签一同删除
docker ps -a //查看所有容器包括已经退出的。
三、创建镜像基于已有镜像的容器创建
运行docker run后进入到该容器中我们做一些变更比如安装一些东西然后针对这个容器进行创建新的镜像
docker commit -m "change somth" -a "somebody info" image_id //通过docker images获取id 新镜像名字
例如 docker commit -m "install httpd" -a "syk" 2c74d574293f centos_net-tools
这个命令有点像svn的提交-m 加一些改动信息-a 指定作者相关信息 2c74d这一串为容器id再后面为新镜像的名字
四、创建镜像基于本地模板导入
模块获取可以直接在网上下载一个模块 http://openvz.org/Download/templates/precreated
wget https://download.openvz.org/template/precreated/centos-6-x86-minimal.tar.gz
cat centos-6-x86.tar.gz |docker import - centos-6-x86
把现有镜像导出为一个文件
docker save -o syk-centos.tar centos-6-x86
我们还可以用该文件恢复本地镜像
docker load --input aming-centos.tar 或者
docker load < aming-centos.tar
docker push image_name //可以把自己的镜像传到dockerhub官方网站