# docker
**Repository Path**: studyinghome/docker
## Basic Information
- **Project Name**: docker
- **Description**: docker常用命令
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2017-07-17
- **Last Updated**: 2023-05-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# docker 常用命令
## Docker version 命令
docker version :显示 Docker 版本信息。
**语法**
>docker version [OPTIONS]
**OPTIONS说明:**
-f :指定返回值的模板文件。
**实例**
显示 Docker 版本信息。
>$ docker version
>Client:
>>Version: 1.7.1
API version: 1.19
Go version: go1.4.2
Git commit: 0a8c2e3/1.7.1
OS/Arch: linux/amd64
>Server:
>>Version: 1.7.1
API version: 1.19
Go version: go1.4.2
Git commit: 0a8c2e3/1.7.1
OS/Arch: linux/amd64
## Docker info 命令
docker info : 显示 Docker 系统信息,包括镜像和容器数。
**语法**
>docker info [OPTIONS]
**实例**
查看docker系统信息。
>$ docker info
Containers: 2
Images: 12
Storage Driver: devicemapper
Pool Name: docker-253:3-2359672-pool
Pool Blocksize: 65.54 kB
Backing Filesystem: extfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Library Version: 1.02.117-RHEL6 (2016-12-13)
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.10.105-1.el6.elrepo.x86_64
Operating System: centos 6
CPUs: 4
Total Memory: 5.196 GiB
Name: panxiang
ID: ZM5K:TXHR:JX2J:2HT5:23PV:TFU2:SV7H:7Z5P:S6DH:ZWZ7:MZCZ:CKKX
## Docker run 命令
docker run :创建一个新的容器并运行一个命令
**语法**
>docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
**PTIONS说明:**
* -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
* -d: 后台运行容器,并返回容器ID;
* -i: 以交互模式运行容器,通常与 -t 同时使用;
* -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
* --name="nginx-lb": 为容器指定一个名称;
* --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
* --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
* -h "mars": 指定容器的hostname;
* -e username="ritchie": 设置环境变量;
* --env-file=[]: 从指定文件读入环境变量;
* --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
* -m :设置容器使用内存最大值;
* --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
* --link=[]: 添加链接到另一个容器;
* --expose=[]: 开放一个端口或一组端口;
**实例**
使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。
>docker run --name mynginx -d nginx:latest
使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。
>docker run -P -d nginx:latest
使用镜像nginx:latest以后台模式启动一个容器,将容器的80端口映射到主机的80端口,主机的目录/data映射到容器的/data。
>docker run -p 80:80 -v /data:/data -d nginx:latest
使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
>panxiang@panxiang:~$ docker run -it nginx:latest /bin/bash
>root@b8573233d675:/#
## Docker create 命令
**docker create** :创建一个新的容器但不启动它
**语法**
>docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
语法同 docker run
**实例**
使用docker镜像nginx:latest创建一个容器,并将容器命名为mynginx
>panxiang@panxiang:~$ docker create --name mynginx nginx:latest
>09b93464c2f75b7b69f83d56a9cfc23ceb50a48a9db7652ee4c27e3e2cb1961f
## Docker exec 命令
**docker exec** :在运行的容器中执行命令
**语法**
>docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS说明:
* -d :分离模式: 在后台运行
* -i :即使没有附加也保持STDIN 打开
* -t :分配一个伪终端
**实例**
在容器mynginx中以交互模式执行容器内/root/baidu.sh脚本
>panxiang@panxiang:~$ docker exec -it mynginx /bin/sh /root/baidu.sh
>http://www.baidu.com/
在容器mynginx中开启一个交互模式的终端
>panxiang@panxiang:~$ docker exec -i -t mynginx /bin/bash
>root@b1a0703e41e7:/#
## Docker start/stop/restart 命令
**docker start** :启动一个或多少已经被停止的容器
**docker stop** :停止一个运行中的容器
**docker restart** :重启容器
**语法**
>docker start [OPTIONS] CONTAINER [CONTAINER...]
>docker stop [OPTIONS] CONTAINER [CONTAINER...]
>docker restart [OPTIONS] CONTAINER [CONTAINER...]
**实例**
启动已被停止的容器mynginx
>docker start mynginx
停止运行中的容器mynginx
>docker stop mynginx
重启容器mynginx
>docker restart mynginx
## Docker kill 命令
**docker kill** :杀掉一个运行中的容器。
**语法**
>docker kill [OPTIONS] CONTAINER [CONTAINER...]
**OPTIONS说明:**
* -s :向容器发送一个信号
**实例**
杀掉运行中的容器mynginx
>panxiang@panxiang:~$ docker kill -s KILL mynginx
>mynginx
## Docker rm 命令
**docker rm** :删除一个或多少容器
**语法**
>docker rm [OPTIONS] CONTAINER [CONTAINER...]
**OPTIONS说明:**
* -f :通过SIGKILL信号强制删除一个运行中的容器
* -l :移除容器间的网络连接,而非容器本身
* -v :-v 删除与容器关联的卷
**实例**
强制删除容器db01、db02
>docker rm -f db01、db02
移除容器nginx01对容器db01的连接,连接名db
>docker rm -l db
删除容器nginx01,并删除容器挂载的数据卷
>docker rm -v nginx01