[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/
```