使用Docker时需要使用Docker命令行工具与Docker daemon进行通信,Docker daemon是Docker的守护进程,负责接收并分发Docker的命令。

注意:Docker命令的运行一般都需要root权限

Docker操作参数解读 - 图1

Docker操作参数解读 - 图2

常用命令

  • 帮助命令
  1. $ sudo docker
  2. 显示命令清单
  3. $ docker COMMAND --help
  4. 命令详细信息
  • docker环境信息
$ sudo docker info
用于检查docker是否正确安装。如果安装正确,该命令会输出docker的详细配置信息;

$ sudo docker version
  • 容器生命周期:涉及容器启动、停止等功能
docker run:核心命令之一,可通过docker run --help查看帮助。
1. $ sudo docker run ubuntu echo "Hello World"
该命令从ubuntu镜像启动一个容器,并执行echo命令;

2. $ sudo docker run -i -t --name mytest ubuntu:latest /bin/bash
该命令启动一个容器,并为它分配一个伪终端,用户可以在伪终端中与容器进行交互;
-i:表示使用交互模式,始终保持输入流开放
-t:表示选择一个伪终端
--name:指定启动容器的名字

常用选项:
-c:用于给运行在容器中的所有进程分配CPU的shares值,这是一个相对权重;
-m:用于限制为容器中所有进程分配的内存总量
-v:用户挂载一个volume
-p:用于将容器的端口暴露给宿主机的端口

3. $ docker start/stop/restart name
对于已经存在的容器,可以通过上述命令来启动、停止和重启;具体可参考--help
  • Docker registry
Docker registry是存储容器镜像的仓库。
1. $ docker pull [OPTIONS] NAME[:TAG @DIGEST]
从Docker仓库中拉取镜像;

    例: $ sudo docker pull ubuntu

2. $ docker push [OPTIONS] NAME[:TAG]
推送镜像到Docker仓库;
    例:$ sudo docker push ubuntu
  • 镜像、容器管理
1. $ docker images:列出主机上的镜像
使用方法:
$ sudo docker images [OPTIONS] [REPOSITORY[:TAG]]
    例如:$ sudo docker images

2. $ docker image ls
第三篇文章中的:ubuntu、redis、haproxy、django下载下来都是镜像;
当使用run命令启动后,就是一个小的容器

3. $ docker rmi/rm
删除镜像、容器:可同时删除多个镜像或容器,也可按条件删除;
使用方法:
$ docker rmi [OPTIONS] IMAGE [IMAGE...]
$ docker rm [OPTIONS] CONTAINER [CONTAINER...]

4. 容器列表
docker container ls
docker container ls --all
docker container ls -aq
  • 容器运维操作
1. $ docker attach
连接到正在运行的容器,可观察该容器的运行情况,或与容器的主进程进行交互。
使用方法:
$ sudo docker attach [OPTIONS] CONTAINER

2. $ docker inspect
查看进行和容器的详细信息,默认会列出全部信息,可以通过 --format参数来指定输出的模板格式。
使用方法:
$ sudo docker inspect [OPTIONS] CONTAINER|IMAGE [CONTAINER|IMAGE...]
    例:sudo docker inspect --format='{{.NetworkSetting.IPAddress}}' ee36
    sudo docker inspect ubuntu14.02

3. $ docker ps
查看容器相关信息,默认只显示正在运行的容器的信息。
使用方法:
$ sudo docker ps [OPTIONS]
-a:可查看所有的容器,包括停止的容器
-l:查看最新创建的容器,包括不在运行中的容器
  • 其他子命令
1. $ docker commit
将一个容器固话为一个新的镜像。当需要制定特定的镜像时,会修改容器的配置,通过commit命令可以将这些修改保存起来,使其不会因为容器的停止而丢失。
使用方法:
$ sudo docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
提交保存时只能选用正在运行的容器;

2. $ event、history、logs
events:会打印出实时的系统事件;
history:会打印出镜像的历史版本信息,即构建该镜像的每一层镜像的命令记录;
logs:会打印出容器中进程的运行日志;