前言
前面一节,我们已经发布了关于不需要手动安装,利用 Vagrant 快速搭建一个Docker 环境,本篇我们就来开撸 docker 的命令
首先进入Docker 命令环境:
$ docker version
Client:
Version: 1.12.1
API version: 1.24
Go version: go1.6.3
Git commit: 23cf638
Built:
OS/Arch: linux/amd64
Server:
Version: 1.12.1
API version: 1.24
Go version: go1.6.3
Git commit: 23cf638
Built:
OS/Arch: linux/amd64
校验环境完毕,下面开始命令:
1、我们可以通过直接输入docker命令来查看所有命令选项
$ docker
2、可以通过命令docker command --help 更深入的了解指定的 Docker 命令使用方法
$ docker pull --help
3、启动容器,以下命令使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器:
$ docker run -it ubuntu /bin/bash
参数说明:
-i: 交互式操作。
-t: 终端。
ubuntu: ubuntu 镜像。
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
要退出终端,直接输入 exit:
4、查看所有的容器命令如下
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3fa68e33bd72 ubuntu "/bin/bash" 2 minutes ago Exited (0) 19 seconds ago compassionate_mcnulty
e4e62e90dad9 google/cadvisor:latest "/usr/bin/cadvisor -l" 3 days ago Up 3 days 0.0.0.0:8080->8080/tcp cadvisor
5、使用 docker start 启动一个已停止的容器
$ docker start 7be73b5b726f
6、后台运行
$ docker run -itd --name ubuntu-test ubuntu /bin/bash
7、停止容器的命令如下:
$ docker stop 3fa68e33bd72
8、停止的容器可以通过 docker restart 重启:
$ docker restart 7be73b5b726f
9、进入容器,在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:
- docker attach
- docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。
attach 命令
下面演示了使用 docker attach 命令。
$ docker attach 7be73b5b726f
注意: 如果从这个容器退出,会导致容器的停止。
exec 命令
$ docker exec -it 7be73b5b726f /bin/bash
注意: 如果从这个容器退出,不会导致容器的停止,这就是为什么推荐大家使用 docker exec 的原因。
10、导出容器docker export 命令。
$ docker export 7be73b5b726f > ubuntu.tar
11、可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1:
$ cat docker/ubuntu.tar | docker import - test/ubuntu:v1
12、删除容器使用 docker rm 命令:
$ docker rm -f 7be73b5b726f
删除容器时,容器必须是停止状态,否则报错
13、下面让我们来介绍一个有用的
$ docker pull nginx
#主机端口 81 映射到 nginx 80
$ docker run -d -p 81:80 nginx
#访问主机 81 端口
$ curl localhost:81
此时我们用 docker ps 命令查看,可以看到 端口的映射信息
除了使用上述方式外,docker 还提供了下面这种方式
14、使用 docker port 可以查看指定 (ID 或者名字)容器的某个确定端口映射到宿主机的端口号。
$ docker port ad013a6510f8
80/tcp -> 0.0.0.0:81
15、docker logs [ID或者名字] 可以查看容器内部的标准输出。
$ docker logs -f ad013a6510f8
-f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出。
16、docker top 来查看容器内部运行的进程
$ docker top ad013a6510f8