查看镜像

docker images: 列出images
docker images -a :列出所有的images(包含历史)
docker images --tree :显示镜像的所有层(layer) :已弃用
docker rmi <image ID>: 删除一个或多个image

[root@localhost docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/centos latest a8493f5f50ff 3 days ago 192.5 MB
[root@localhost docker]# docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/centos latest a8493f5f50ff 3 days ago 192.5 MB
[root@localhost docker]# docker images --tree
unknown flag: --tree
See 'docker images --help'.

使用镜像创建窗口与交互式运行
docker run docker.io/centos:创建容器,测试发现此种方式创建的容器不能启动(具体原因待验证)
docker run -i -t docker.io/centos /bin/bash:创建容器并交互式运行

[root@localhost docker]# docker run docker.io/centos /bin/echo hello docker --创建容器,并输出 hello docker
hello docker
[root@localhost docker]# docker run docker.io/centos --创建容器
[root@localhost docker]# docker run -i -t docker.io/centos /bin/bash --创建容器并交互式运行
[root@e9a66fa63cbf /]# ls
anaconda-post.log bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@e9a66fa63cbf /]#

查看容器

docker ps :列出当前所有正在运行的container
docker ps -l :列出最近一次启动的container
docker ps -a :列出所有的container(包含历史,即运行过的container)
docker ps -q :列出最近一次运行的container ID

[root@localhost frinder]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost frinder]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e9a66fa63cbf docker.io/centos "/bin/bash" 2 minutes ago Exited (0) About a minute ago tiny_lamport
[root@localhost frinder]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e9a66fa63cbf docker.io/centos "/bin/bash" 2 minutes ago Exited (0) About a minute ago tiny_lamport
b56b4960d31f docker.io/centos "/bin/bash" 5 minutes ago Exited (0) 5 minutes ago amazing_colden
23ccaa5b07c2 docker.io/centos "/bin/echo hello dock" 7 minutes ago Exited (0) 7 minutes ago cocky_tesla
54d23ded3cd1 docker.io/centos "/bin/bash" 32 minutes ago Exited (0) 30 minutes ago trusting_euclid
[root@localhost frinder]# docker ps -q
[root@localhost frinder]#

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

[root@localhost docker]# docker start e9a66fa63cbf
e9a66fa63cbf
[root@localhost docker]# docker attach e9a66fa63cbf
[root@e9a66fa63cbf /]# exit
exit
[root@localhost docker]# docker restart e9a66fa63cbf
e9a66fa63cbf
[root@localhost docker]# docker attach e9a66fa63cbf
[root@e9a66fa63cbf /]# exit
exit
[root@localhost docker]# docker start -i e9a66fa63cbf
[root@e9a66fa63cbf /]# exit
exit
[root@localhost docker]#

删除容器
docker rm <container...> :删除一个或多个container
docker rm `docker ps -a -q` :删除所有的container
docker ps -a -q | xargs docker rm :同上, 删除所有的container

[root@localhost docker]# docker rm b56b4960d31f
b56b4960d31f
[root@localhost docker]#

持久化容器与镜像

通过容器生成新的镜像

docker commit <container-id> <image-name>:把一个容器转变为一个新的镜像

[root@localhost docker]# docker commit 54d23ded3cd1 test-image
sha256:6104a9ded2f03269e20f58d02b56221c02d72adf0eeca3257c2a92d78a01b8ee
[root@localhost frinder]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test-image latest 6104a9ded2f0 19 seconds ago 192.5 MB
docker.io/centos latest a8493f5f50ff 3 days ago 192.5 MB

持久化容器
export命令用于持久化容器
docker export <CONTAINER ID> > /tmp/export.tar

[root@localhost docker]# docker export e9a66fa63cbf > /tmp/test.tar
[root@localhost docker]# ls /tmp/
anaconda.log ks-script-Ig5NMv storage.log test.tar
[root@localhost docker]#

持久化镜像
save命令用于持久化镜像
docker save 镜像ID > /tmp/save.tar

[root@localhost docker]# docker save test-image > /tmp/i-test.tar
[root@localhost docker]# ll /tmp
总用量 390960
-rw-r--r--. 1 root root 1862 4月 10 2017 anaconda.log
-rw-r--r--. 1 root root 200103424 4月 10 18:14 c-test.tar
-rw-r--r--. 1 root root 200116224 4月 10 18:16 i-test.tar

导入持久化container(将 container导入成 image)
[root@localhost docker]# cat /tmp/c-test.tar |docker import - export:latest

[root@localhost docker]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e9a66fa63cbf docker.io/centos "/bin/bash" 31 minutes ago Exited (0) 18 minutes ago tiny_lamport
23ccaa5b07c2 docker.io/centos "/bin/echo hello dock" 36 minutes ago Exited (0) 21 minutes ago cocky_tesla
54d23ded3cd1 docker.io/centos "/bin/bash" About an hour ago Exited (0) 17 minutes ago trusting_euclid
[root@localhost docker]# docker rm e9a66fa63cbf
e9a66fa63cbf
[root@localhost docker]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
23ccaa5b07c2 docker.io/centos "/bin/echo hello dock" 36 minutes ago Exited (0) 21 minutes ago cocky_tesla
54d23ded3cd1 docker.io/centos "/bin/bash" About an hour ago Exited (0) 17 minutes ago trusting_euclid
[root@localhost docker]# cat /tmp/c-test.tar |docker import - export:latest
sha256:e65811fb72d82ed380eb3e138ee693b40074726c758f80193d17a4a01d8f9108
[root@localhost docker]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
23ccaa5b07c2 docker.io/centos "/bin/echo hello dock" 37 minutes ago Exited (0) 22 minutes ago cocky_tesla
54d23ded3cd1 docker.io/centos "/bin/bash" About an hour ago Exited (0) 18 minutes ago trusting_euclid
[root@localhost docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
export latest e65811fb72d8 48 seconds ago 192.5 MB
test-image latest 6104a9ded2f0 15 minutes ago 192.5 MB
docker.io/centos latest a8493f5f50ff 3 days ago 192.5 MB

导入持久化image
[root@localhost docker]# docker load < /tmp/i-test.tar

[root@localhost docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
export latest e65811fb72d8 48 seconds ago 192.5 MB
test-image latest 6104a9ded2f0 15 minutes ago 192.5 MB
docker.io/centos latest a8493f5f50ff 3 days ago 192.5 MB
[root@localhost docker]# docker rmi test-image
Untagged: test-image:latest
Deleted: sha256:6104a9ded2f03269e20f58d02b56221c02d72adf0eeca3257c2a92d78a01b8ee
Deleted: sha256:287c689f3983b30f642dab57f59ec5a21aa817e1aaf1d37ea63207a7a8cd0a50
[root@localhost docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
export latest e65811fb72d8 About a minute ago 192.5 MB
docker.io/centos latest a8493f5f50ff 3 days ago 192.5 MB
[root@localhost docker]# docker load < /tmp/i-test.tar
496bc0b12baf: Loading layer [==================================================>] 3.584 kB/3.584 kB
Loaded image: test-image:latest=====> ] 512 B/3.584 kB
[root@localhost docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
export latest e65811fb72d8 5 minutes ago 192.5 MB
test-image latest 6104a9ded2f0 19 minutes ago 192.5 MB
docker.io/centos latest a8493f5f50ff 3 days ago 192.5 MB
[root@localhost docker]#

修改 image tag:
[root@localhost docker]# docker tag test-image load:my.image

[root@localhost docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
export latest e65811fb72d8 5 minutes ago 192.5 MB
test-image latest 6104a9ded2f0 19 minutes ago 192.5 MB
docker.io/centos latest a8493f5f50ff 3 days ago 192.5 MB
[root@localhost docker]# docker tag test-image load:my.image
[root@localhost docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
export latest e65811fb72d8 7 minutes ago 192.5 MB
load my.image 6104a9ded2f0 22 minutes ago 192.5 MB
test-image latest 6104a9ded2f0 22 minutes ago 192.5 MB
docker.io/centos latest a8493f5f50ff 3 days ago 192.5 MB
[root@localhost docker]#

export-import与save-load的区别

导出后再导入(export-import)的镜像会丢失所有的历史,而保存后再加载(save-load)的镜像没有丢失历史和层(layer)。这意味着使用导出后再导入的方式,你将无法回滚到之前的层(layer),同时,使用保存后再加载的方式持久化整个镜像,就可以做到层回滚。(可以执行docker tag <LAYER ID> <IMAGE NAME>来回滚之前的层)。

一些其它命令

docker logs $CONTAINER_ID #查看docker实例运行日志,确保正常运行
docker inspect $CONTAINER_ID #docker inspect <image|container> 查看image或container的底层信息
docker build <path> 寻找path路径下名为的Dockerfile的配置文件,使用此配置生成新的image
docker build -t repo[:tag] 同上,可以指定repo和可选的tag
docker build - < <dockerfile> 使用指定的dockerfile配置文件,docker以stdin方式获取内容,使用此配置生成新的image
docker port <container> <container port> 查看本地哪个端口映射到container的指定端口,其实用docker ps 也可以看到

一些使用技巧

docker文件存放目录
Docker实际上把所有东西都放到/var/lib/docker路径下了。

[root@localhost docker]# ls -F
containers/ devicemapper/ execdriver/ graph/ init/ linkgraph.db repositories-devicemapper volumes/

containers目录当然就是存放容器(container)了,graph目录存放镜像,文件层(file system layer)存放在graph/imageid/layer路径下,这样我们就可以看看文件层里到底有哪些东西,利用这种层级结构可以清楚的看到文件层是如何一层一层叠加起来的。

docker 命令介绍的更多相关文章

  1. Docker学习总结之Run命令介绍

    Docker学习总结之Run命令介绍 本文由Vikings(http://www.cnblogs.com/vikings-blog/) 原创,转载请标明.谢谢! 在使用Docker时,执行最多的命令某 ...

  2. docker的介绍以及常用命令

    一.docker的介绍 1. Docker是什么? Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚 ...

  3. Docker 安装与常用命令介绍

    docker的镜像文件作用就是:提供container运行的文件系统层级关系(基于AUFS实现),所依赖的库文件.已经配置文件等等. 安装docker yum install -y docker 启动 ...

  4. Docker实用命令介绍

    Docker实用命令介绍 1. docker启动.关闭.停止 ╭─wil-xz in ~ 12:15:44 ╰─٩(ŏ﹏ŏ.)۶ service docker restart Redirecting ...

  5. Docker入门教程(六)另外的15个Docker命令

    Docker入门教程(六)另外的15个Docker命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第六篇,继续介绍Docker命令.之前的第二篇文章 ...

  6. docker命令和后台参数

    Docker官方为了让用户快速了解Docker,提供了一个 交互式教程 ,旨在帮助用户掌握Docker命令行的使用方法. Docker 命令行 下面对Docker的命令清单进行简单的介绍,详细内容在后 ...

  7. 从开发到部署会用到的 Docker 命令

    本文的目的是理解容器开发在目标环境中部署的端到端流程,并列出这些操作所需的 Docker 命令.如果有任何Docker问题,请移步到最新最热的技术社区 IT帮 itbang.me 提问,短信通知专家来 ...

  8. Docker命令行与守护进程如何交互?

    译者按: Docker是典型的C/S架构,其守护进程(daemon)与命令行(CLI)是通过REST API进行交互的. 原文: Understanding how the Docker Daemon ...

  9. Docker Swarm 介绍 or 工作原理

    Docker Swarm 介绍 Swarm 简介 Swarm是Docker公司自研发的容器集群管理系统,Swarm在早期是作为一个独立服务存在,在Docker Engine v1.12中集成了Swar ...

随机推荐

  1. linux 安装禅道

    1. 查看Linux服务器版本信息 # cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) 2. 禅道开源版安装包下载 # wge ...

  2. log4j2搭建记录

    今天新建了一个项目,自己弄的小玩意,想要做的正式点,就想引入日志.就想到了log4j2,经过几个小时的努力,还真的可以用了,下面就记录一下我是怎么做的. 下面是总的结构: 下面是MAVEN依赖: &l ...

  3. 集中化管理平台Saltstack安装配置

    salt是一个异构平台基础设置管理工具(虽然我们通常只用在Linux上),使用轻量级的通讯器ZMQ,用Python写成的批量管理工具,完全开源,遵守Apache2协议,与Puppet,Chef功能类似 ...

  4. 电影TS、TC、BD版和HD版

    HD的意思是指HDTV,HDTV指网上下载的高清影片,它的画面品质会比BD稍差,主要表现为亮度不足,色彩不自然等.BD是指蓝光(Blu-ray)或称蓝光盘(Blu-ray Disc,缩写为BD),目前 ...

  5. 【转载】Apache Jena TDB CRUD operations

    Apache Jena TDB CRUD operations June 11, 2015 by maltesander http://tutorial-academy.com/apache-jena ...

  6. visual c++ 中的stdafx.h头文件的作用

    stdafx.h VC工程里面经常见到stdafx.h这个头文件,以前也没有特别注意,但是这个文件用不好经常会出错,所以就GOOGLE了一下,总算是弄清楚了... stdafx的英文全称为:Stand ...

  7. Mac和iOS开发资源汇总—更新于2013-10-14

    小引本文主要汇集一些苹果开发的资源,会经常更新,建议大家把这篇文章单独收藏(在浏览器中按command+D).今天(2013年10月14日)收录了answer哥(黄爱武)的博客,欢迎大家围观! 今天( ...

  8. 数据文件导入mysql时出现中文乱码问题

    http://www.ynpxrz.com/n773257c2024.aspx 从shell进入mysql, mysql> show variables like ‘%char%'; +---- ...

  9. Java.sql.SQLException: 无效的列类型: 1111

    org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: ...

  10. 【英宝通Unity4.0公开课学习 】(六)76讲到90讲

    还是关于Mecanim动画的内容. 这些讲的每讲长度明显比前面的长,而且很多都涉及到脚本编写. 不过我还是2倍速给略览过去了,主要目的就是学个框架嘛 :) 1. Blend Tree 可嵌套. 可理解 ...