目录

docker pull 镜像名字:[tag]
注意:如果不指定tag,则下载Docker Hub公共注册服务器中仓库的最新版本。tag指定的是版本。例如:docker pull centos:7
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
注意其中IMAGE ID是一个东西,代表的是镜像的ID号,注意这里的ID号虽然很长,但是其实前两位即可表示一个ID号了,比如你一个命令中某个参数是ID号,那么你只需要输入这个ID号的前两位即可;而REPOSITORY就是镜像的名字。
参数:
- 来自于哪个仓库,比如 ubuntu仓库。镜像的标签信息,比如14.04。
- 镜像的ID号(唯一)。
- 创建时间。
- 镜像大小。
镜像的ID信息十分重要,它唯一标识了镜像。
docker search [镜像名字]
参数:可以看到返回了很多包含关键字的镜像,其中包括镜像名字、描述、星级(表示该镜像的受欢迎程度)、是否官方创建、是否自动创建等。
- docker rmi 源名字
- docker rmi image id
rmi是remove image,即删除镜像的意思。
举例:
源名字就是上面跳提到过的REPOSITORY,而image id也在上面提到过。

容器是镜像的运行实例。
docker create -it 镜像名字
注意:使用docker create命令新建的容器处于停止状态,可以使用docker start命令来启动它。
docker ps
参数:-a: 显示未启动容器-q:返回容器id号
如果不加参数则默认显式的是启动的容器。
如:
- docker ps -a
- docker ps -q
- docker ps -aq
比如上面的docker ps -aq输出了未启动的容器的id,其中一个容器的id是43f675948db3
,而我们现在想启动这个容器,我们可以docker start 43(关于取id的前两位在第一节的查看镜像那里讲过)
docker run 镜像名字 /bin/echo 'hello world'
Docker在后台运行的标准操作包括:
- 检查本地是否存在指定的镜像,不存在就从公有仓库下载。
- 利用镜像创建并启动一个容器。
- 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层。
- 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去。
- 从地址池配置一个IP地址给容器。
- 执行用户指定的应用程序(比如上面那个示例命令的/bin/echo 'hello world'就是指定要运行的程序,输出hello world)。
- 执行完毕后容器被终止。
下面命令则启动一个bash端,运行用户交互
docker run -t -i 镜像名字 /bin/bash
参数:
其中, -t 选项让 Docker 分配一个伪终端( pseudo-tty) 并绑定到容器的标准输入上, -i 则让容器的标准输入保持打开。exit 命令退出。
docker run -d 镜像名字 /bin/sh -c "while true; do echo hello world ;sleep 1;done"
上面的命令写了一小段Shell,功能是间歇1s,死循环输出hello world。
docker ps
docker logs 容器id
docker stop 容器id
docker start 容器id
docker restart 容器id
上图是三个方框,最外层是宿主机,再往里一层是虚拟机,最里层就是容器了,咱们的容器是个操作系统centOS,那么咱们当然可以进入操作系统里玩玩了。
docker attach 容器id
注意:
但是使用attach命令有时候并不方便。当多个窗口同时attach 到同一个容器的时候,所有窗口都会同步显示。当某个窗口因命令阻塞时,其他窗口也无法执行操作 了。
但是本来一个正在运行的容器,如果执行了上面的命令, 退出的时候会自动关闭容器(退出执行exit即可),这就是一个缺点,但是下面的命令解决了这个问题,所以一般不用attach命令,一般都用exec命令。
docker exec -it 容器id /bin/bash
上面这个是一个标准写法,进入容器之后一般要执行一些命令,/bin/bash
docker rm 容器id
参数:
- -f, --force=false强行终止并删除一个运行中的容器。
- -l, --link=false删除容器的连接,但保留容器。
- -V,--volumes=false删除容器挂载的数据卷。
# 如果 docker 容器在启动的时候没有加 -d 参数exit # 会直接停止容器并退出Ctrt + p + q # 容器不停止并退出

遇到容器后动失败不要怕,看报错日志。
docker logs 容器id
参数:
- -f, --follow 跟踪实时日志
- --since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
- --tail string 从日志末尾显示多少行日志, 默认是all
- -t, --timestamps 显示时间戳
- --until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)
当某条命令参数过多时,可以使用--help来查看有哪些参数,比如:
- docker run --help
-
- docker logs --help
语法格式:
docker top 容器id