第一章 docker 镜像,容器,仓库基本命令(一)


注意: docker命令需要root权限

1.创建镜像:

     基于已有的镜像容器创建
     基于本地模板导入
     基于Dockerfile创建
1.1  基于已有的容器创建镜像

    docker commit [options] containerID [repository[:tag]]

    [options] : 
           -a    #作者信息
           -m    #提交信息
           -p    #提交时暂停容器运行

    example: docker commit -a "小明" -m "提交说明" ac894se22 dl.dockerpool.com:5000/ubuntu:12.04  
    #新建一个镜像12.04 .. 这里ac894se22为一个容器的id
1.2 基于本地模板导入   网站地址下载相关的包 https://openvz.org/Download/template/precreated

    cat XXX(下载的包名)|docker import - name(新的镜像名)
    example:
    wget http://download.openvz.org/template/precreated/centos-6-x86-minimal.tar.gz
    cat centos-6-x86-minimal.tar.gz|docker import - centos-6-x86       #import - (+自定义的名字)
    docker images           #查看刚刚导入的镜像是否存在
1.3 基于Dockerfile创建
    这里是个链接

2.查看镜像

docker images              #列出所有镜像
docker images | grep XXX   #条件过滤镜像
docker inspect imageID                #获取镜像的详细信息
docker inspect -f {{.属性名}} imageID  #获取镜像的某个属性值

3.搜索镜像 docker search

搜索远端仓库共享的镜像,而非本地(仓库)
docker search XXX   
docker search mysql

4.拉取镜像 docker pull

  docker pull [选项] [Docker Registry地址]<仓库名>[:TAG]
  docker pull -a docker.com/ubuntu:12.04  #拉取所有版本是12.04的ubuntu镜像

5.删除镜像

docker rmi imageId     #删除镜像,当有该镜像的容器存在时,是无法删除镜像的
docker rmi -f imageId   #强行删除镜像

6.存出/载入镜像

 将镜像存出到本地
 docker save -o newName imageId/repository:tag
 example:
 #将nginx:latest的镜像寸出到当前文件夹中并重命名为nginx.tar
 docker save -o  nginx.tar  docker.io/nginx:latest 
 将本地文件载入到镜像
 docker load < nginx.tar 或 docker load --input nginx.tar

7.上传镜像到仓库

dockerhub网站注册用户名,或者私库
docker push docker.io/nginx:latest 
docker push tag nginx docker.io/nginx:latest 
#将nginx重命名 docker.io/nginx:lastest 
 docker.io必须要有