1. 查看docker信息(version、info)
  1. # 查看docker版本
  2. $docker version
  3. # 显示docker系统的信息
  4. $docker info

2. 对image的操作(search、pull、images、rmi、history)

  1. # 检索image
  2. $docker search image_name
  3. # 下载image
  4. $docker pull image_name
  5. # 列出镜像列表; -a, --all=false Show all images; --no-trunc=false Don't truncate output; -q, --quiet=false Only show numeric IDs
  6. $docker images
  7. # 删除一个或者多个镜像; -f, --force=false Force; --no-prune=false Do not delete untagged parents
  8. $docker rmi image_name
  9. # 显示一个镜像的历史; --no-trunc=false Don't truncate output; -q, --quiet=false Only show numeric IDs
  10. $docker history image_name

3. 启动容器(run)

docker容器可以理解为在沙盒中运行的进程。这个沙盒包含了该进程运行所必须的资源,包括文件系统、系统类库、shell 环境等等。但这个沙盒默认是不会运行任何程序的。你需要在沙盒中运行一个进程来启动某一个容器。这个进程是该容器的唯一进程,所以当该进程结束的时候,容器也会完全的停止。

# 在容器中运行"echo"命令,输出"hello word"

  1. $docker run image_name echo "hello word"
  2. # 交互式进入容器中
  3. $docker run -i -t image_name /bin/bash
  4. # 在容器中安装新的程序
  5. $docker run image_name apt-get install -y app_name

Note:  在执行apt-get 命令的时候,要带上-y参数。如果不指定-y参数的话,apt-get命令会进入交互模式,需要用户输入命令来进行确认,但在docker环境中是无法响应这种交互的。apt-get 命令执行完毕之后,容器就会停止,但对容器的改动不会丢失。

4. 查看容器(ps)

  1. # 列出当前所有正在运行的container
  2. $docker ps
  3. # 列出所有的container
  4. $docker ps -a
  5. # 列出最近一次启动的container
  6. $docker ps -l

5. 保存对容器的修改(commit)

当你对某一个容器做了修改之后(通过在容器中运行某一个命令),可以把对容器的修改保存下来,这样下次可以从保存后的最新状态运行该容器。
  1. # 保存对容器的修改; -a, --author="" Author; -m, --message="" Commit message
  2. $docker commit ID new_image_name

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

6. 对容器的操作(rm、stop、start、kill、logs、diff、top、cp、restart、attach)

  1. # 删除所有容器
  2. $docker rm `docker ps -a -q`
  3. # 删除单个容器; -f, --force=false; -l, --link=false Remove the specified link and not the underlying container; -v, --volumes=false Remove the volumes associated to the container
  4. $docker rm Name/ID
  5. # 停止、启动、杀死一个容器
  6. $docker stop Name/ID
  7. $docker start Name/ID
  8. $docker kill Name/ID
  9. # 从一个容器中取日志; -f, --follow=false Follow log output; -t, --timestamps=false Show timestamps
  10. $docker logs Name/ID
  11. # 列出一个容器里面被改变的文件或者目录,list列表会显示出三种事件,A 增加的,D 删除的,C 被改变的
  12. $docker diff Name/ID
  13. # 显示一个运行的容器里面的进程信息
  14. $docker top Name/ID
  15. # 从容器里面拷贝文件/目录到本地一个路径
  16. $docker cp Name:/container_path to_path
  17. $docker cp ID:/container_path to_path
  18. # 重启一个正在运行的容器; -t, --time=10 Number of seconds to try to stop for before killing the container, Default=10
  19. $docker restart Name/ID
  20. # 附加到一个运行的容器上面; --no-stdin=false Do not attach stdin; --sig-proxy=true Proxify all received signal to the process
  21. $docker attach ID

Note: attach命令允许你查看或者影响一个运行的容器。你可以在同一时间attach同一个容器。你也可以从一个容器中脱离出来,是从CTRL-C。

7. 保存和加载镜像(save、load)

当需要把一台机器上的镜像迁移到另一台机器的时候,需要保存镜像与加载镜像。

# 保存镜像到一个tar包; -o, --output="" Write to an file

  1. $docker save image_name -o file_path
  2. # 加载一个tar包格式的镜像; -i, --input="" Read from a tar archive file
  3. $docker load -i file_path
  4. # 机器a
  5. $docker save image_name > /home/save.tar
  6. # 使用scp将save.tar拷到机器b上,然后:
  7. $docker load < /home/save.tar

8、 登录registry server(login)

  1. # 登陆registry server; -e, --email="" Email; -p, --password="" Password; -u, --username="" Username
  2. $docker login

9. 发布image(push)

  1. # 发布docker镜像
  2. $docker push new_image_name

10.  根据Dockerfile 构建出一个容器

  1. #build
  2. --no-cache=false Do not use cache when building the image
  3. -q, --quiet=false Suppress the verbose output generated by the containers
  4. --rm=true Remove intermediate containers after a successful build
  5. -t, --tag="" Repository name (and optionally a tag) to be applied to the resulting image in case of success
  6. $docker build -t image_name Dockerfile_path

 

Docker常用命令大全的更多相关文章

  1. Docker在centos上的安装与常用命令大全

    docker的安装与加速器配置 安装docker:yum install docker (默认安装路径/var/lib/docker) 启动docker服务:systemctl start docke ...

  2. 【易筋经】Llinux服务器初始化及常用命令大全

    Llinux服务器初始化及常用命令大全 1.关闭防火墙以及内核安全机制 systemctl stop firewalld systemctl disable firewalld ##永久性关闭 set ...

  3. db2常用命令大全

    #显示这个DB2错误的解释信息(SQLSTATE 5位数字)db2 ? 42704 #显示这个SQLCODE的解释信息(SQLCODE 四位数字) db2 ? SQL0204N ##查看数据库指定配置 ...

  4. linux 常用命令大全

    linux 常用命令大全 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统 ...

  5. Ubuntu常用命令大全(转)

    点评:Ubuntu常用命令大全,学习ubuntn系统的朋友可以收藏下,用ctrl+F查找即可 一.文件/文件夹管理 ls 列出当前目录文件(不包括隐含文件) ls -a 列出当前目录文件(包括隐含文件 ...

  6. 关于Docker 常用命令

    Docker 常用命令 分类列一下常用的CLI命令 仓库相关 search/ pull / push / login etc. 例:docker pull ubuntu 从仓库下载ubuntuimag ...

  7. 100个命令Linux常用命令大全

    Linux常用命令大全100条: 1,echo "aa" > test.txt 和 echo "bb" >> test.txt//>将原 ...

  8. 【Docker】(3)---linux部署Docker、Docker常用命令

    linux部署Docker.Docker常用命令 本次部署Linux版本:CentOS 7.4 64位. 说明: 因为Docker是基于Linux 64bit的 所以Docker要求64位的系统且内核 ...

  9. Linux常用命令大全(非常全!!!)

    Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错.我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短 ...

随机推荐

  1. linux安装tomcat

    一.下载tomcat 最新地址在:http://tomcat.apache.org 我下载的是:apache-tomcat-7.0.73.tar.gz,是已经编译好的包 解压文件后,移动到" ...

  2. SQLServer-----Union,Union All的使用方法

    转载: http://blog.csdn.net/kiqinie/article/details/8132485 select a.Name from Material as a union sele ...

  3. MTK MT33xx型GPS的NMEA协议解析实例

    1)解析实现 gps_main.c #include <nmea/nmea.h> #include <string.h> #include <stdio.h> #i ...

  4. 微软压力测试工具 web application stress

    转自 http://www.cnblogs.com/tonykan/p/3514749.html lbimba  铜牌会员 这里给广大的煤油推荐一个web网站压力测试工具.它可以用来模拟多个用户操作网 ...

  5. php中引用&的真正理解-变量引用、函数引用、对象引用

    php的引用(就是在变量或者函数.对象等前面加上&符号) //最重要就是 删除引用的变量 ,只是引用的变量访问不了,但是内容并没有销毁 在PHP 中引用的意思是:不同的名字访问同一个变量内容. ...

  6. jq绑定事件的4种方式

    jQuery提供了多种绑定事件的方式,每种方式各有其特点,明白了它们之间的异同点,有助于我们在写代码的时候进行正确的选择,从而写出优雅而容易维护的代码.下面我们来看下jQuery中绑定事件的方式都有哪 ...

  7. JS心得——判断一个对象是否为空

    判断一个对象是否为空对象,本文给出三种判断方法: 最常见的思路,for...in...遍历属性,为真则为"非空数组":否则为"空数组" 2.通过JSON自带的. ...

  8. iOS如何彻底避免数组越界

    我们先来看看有可能会出现的数组越界Crash的地方: ? 1 2 3 4 5 6 7 - (void)tableView:(UITableView *)tableView didSelectRowAt ...

  9. (转)C#图解—PictureBox.SizeMode 属性

    PictureBoxSizeMode.Normal: 默认情况下,在 Normal 模式中,Image 置于 PictureBox 的左上角,凡是因过大而不适合 PictureBox 的任何图像部分都 ...

  10. 多线程AutoResetEvent

    我们在线程编程的时候往往会涉及到线程的通信,通过信号的接受来进行线程是否阻塞的操作. AutoResetEvent 允许线程通过发信号互相通信.通常,此通信涉及线程需要独占访问的资源. AutoRes ...