Chinaunix首页 | 论坛 | 博客
  • 博客访问: 232296
  • 博文数量: 96
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 0
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-14 11:43
文章分类

全部博文(96)

文章存档

2016年(41)

2015年(55)

我的朋友

分类: 系统运维

2015-11-30 12:00:08

0. 理解   
   image相当于类,container相当于实例,不过可以动态给实例安装新软件,
    然后把这个container用commit命令固化成一个image。


1. docker 安装:

     参考:
                  curl -sSL https://get.docker.com/ | sh

2. docker 运行container
     docker run -i -t  [镜像名]
   “
-i 捕获标准输入输出”和 “-t 分配一个终端或控制台”选项。若要断开与容器的连接,输入 exit。
3. docker 删除
    
docker images往往不知不觉就占满了硬盘空间,为了清理冗余的image,可采用以下方法:

    3.1.进入root权限

        sudo su

    3.2.停止所有的container,这样才能够删除其中的images:

        docker stop $(docker ps -a -q)

        如果想要删除所有container的话再加一个指令:

        docker rm $(docker ps -a -q)

    3.3.查看当前有些什么images

        docker images

    3.4.删除images,通过image的id来指定删除谁

        docker rmi

        想要删除untagged images,也就是那些id为的image的话可以用

        docker rmi $(docker images | grep "^" | awk "{print $3}")

        要删除全部image的话

        docker rmi $(docker images -q)

4 .docker image 操作

    检索image    
        $docker search image_name
    下载image

        $docker pull image_name
    列出镜像列表; -a, --all=false Show all images; --no-trunc=false Don't truncate output; -q, --quiet=false Only show numeric IDs
        $docker images
    删除一个或者多个镜像; -f, --force=false Force; --no-prune=false Do not delete untagged parents
        $docker rmi image_name
    显示一个镜像的历史; --no-trunc=false Don't truncate output; -q, --quiet=false Only show numeric ID
        $docker history image_name

5.  docker 容器操作 
    docker start/stop/restart :开启/停止/重启container
    docker start [container_id] :再次运行某个container (包括历史container)
    docker attach [container_id] :连接一个正在运行的container实例(即实例必须为start状态,可以多个窗口同时attach 一个container实例)
    docker start -i :启动一个container并进入交互模式(相当于先start,在attach)     docker run -i -t /bin/bash :使用image创建container并进入交互模式, login shell是/bin/bash
    docker run -i -t -p :映射 HOST 端口到容器,方便外部访问容器内服务,host_port 可以省略,省略表示把 container_port 映射到一个动态端口。

6. docker自身参数
  Docker实际上把所有东西都放到/var/lib/docker路径下了

7.退出shell而不退出容器
组合键:Ctrl+P+Q

8.docker 查看容器
docker inspect

9.docker清理命令集锦
docker kill $(docker ps -a -q)        杀死所有正在运行的容器
docker rm $(docker ps -a -q)         删除所有已经停止的容器
docker rmi $(docker images -q -f dangling=true)   删除所有未打 dangling 标签的镜像


10.

容器转成镜像:
sudo docker commit imagename01

容器转成文件:
sudo docker export > /home/export.tar

镜像转成文件:
sudo docker save imagename01 > /home/save.tar
注:一般情况下,save.tar比export.tar大一点点而已,export比较小,因为它丢失了历史和数据元metadata

文件转成镜像:
cat /home/export.tar | sudo docker import - imagename02:latest

save.tar文件转成镜像:
docker load < /home/save.tar

查看转成的镜像:sudo docker images

注意:这里一个镜像经过n次转化之后,可以用sudo docker images --tree查看历史,用docker tag 你可以回到某个层(只针对save命令可以回到某个层!)




阅读(935) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~