[TOC]
### 帮助命令
#### 1. docker version
> 查看版本信息
#### 2. docker info
> 查看docker信息
#### 3. docker --help
> 查看帮助文档信息
```
docker --help
docker images --help
```
### 镜像命令
#### 1. docker search
> 远程仓库查找镜像
> http://hub.docker.com (上面还可以去学习其他镜像的dockerfile)
```
docker search mysql
```
#### 2. docker images
> 列出本地主机上的镜像
#### 3. docker pull
> 远程仓库拉取镜像到本地
```
docker pull mysql
docker pull mysql:5.3
docker pull mysql:latest
```
#### 4. docker rmi
> 删除本地镜像
```
docker rmi -f 镜像id / 镜像名 / 镜像名:TAG
docker rmi -f $(docker images -qa) # 删除本地所有镜像
```
### 网络管理
#### 1. docker network ls
> 查看网络情况
#### 2. docker network create
> 创建自定义网络模式
```
docker network create --subnet=172.20.0.0/16 extnetwork
```
#### 3. docker network rm
> 删除网络
```
docker network rm extnetwork
```
### 容器命令
#### 1. docker run
> 运行容器
> OPTIONS:
> --name 镜像命名
> -d 以deamon方式运行
> -p 端口映射
> -i 以交互模式运行容器(常于-it搭配使用)
> -t 为容器重新分配一个伪输入终端
> -v 进行挂载
> 例1:
```
docker run --name mycentos -it centos
```
> 例2:
```
docker run --name mynginx \
-d -p 81:81 \
-v /c/Users/husilu/docker-nginx/www/default:/usr/share/nginx/html \
nginx:1.14.0
```
> 例3 (创建容器并指定IP):
> 参数:--net extnetwork --ip 172.20.0.2
> 注意:需要先创建自定义网络(名称为extnetwork),172.20.0.1 是docker默认网关,不能占用
```
docker run --name mycentos --net extnetwork --ip 172.20.0.2 -it centos
```
#### 2. docker ps
> 查看正在运行的容器列表
> OPTIONS:
> -l 显示最新的容器列表(包含所有状态的)
#### 3. docker exec
> 进入容器 [容器名 / 容器ID]
```
docker exec -it myphp bash
```
> 退出容器
> A ) exit (退出并容器停止) B ) ctrl+P+Q (退出并容器继续运行)
#### 4. docker start / stop | kill / restart
> 容器的 启动 / 停止 / 重启 [容器名 / 容器ID]
> stop 和kill的区别是 stop温柔停止,kill强制停止,关闭的速度很快
#### 5. docker rm
> 删除容器 [容器名 / 容器ID]
```
docker rm mycentos
docker rm -f $(docker ps -qa) # 删除所有的容器
```
#### 6. docker top
> 查看容器内运行的进程 [容器名 / 容器ID]
#### 7. docker inspect
> 查看容器内部细节 [容器名 / 容器ID]
#### 8. docker cp
> 容器与主机之间的数据拷贝
> A ) 将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下
```
docker cp /www/runoob 96f7f14e99ab:/www/
```
> B ) 将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中
```
docker cp 96f7f14e99ab:/www /tmp/
```