docker run :创建一个新的容器并运行一个命令

-a stdin 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;

-C 共享CPU

–cidfile=“” 将容器的ID标识写入文件

-d 后台运行容器,并返回容器ID;

–dns 8.8.8.8 指定容器使用的DNS服务器,默认和宿主一致;

-e, --env=[] 指定环境变量,容器中可以使用该环境变量

–env-file=[] 指定环境变量文件,文件格式为每行一个环境变量

–expose=[] 指定容器暴露的端口,即修改镜像的暴露端口

-h, --hostname="" 指定容器的主机名

-I 以交互模式运行容器,通常与 -t 同时使用;

-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

–link=[] 添加链接到另一个容器;

–name="" 指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字;

-n 允许镜像使用网络

–net=“bridge” 容器的网络连接类型,支持 bridge/host/none/container: 四种类型;

–cpuset=“0-2” or --cpuset=“0,1,2” 绑定容器到指定CPU运行;

-m 设置容器使用内存最大值;

-P Docker 会随机映射一个端口到内部容器开放的网络端口。

-p 可以指定要映射的端口,在一个指定端口上只可以绑定一个容器。支持的格式有 ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort。

–rm=false 容器停止后自动删除容器(不支持以docker run -d启动的容器)

–restart="" 指定容器停止后的重启策略,待详述

-u, --user="" 指定容器的用户

-v, --volume=[] 给容器挂载存储卷,挂载到容器的某个目录

–volumes-from=[] 给容器挂载其他容器上的卷,挂载到容器的某个目录

-w, --workdir="" 指定容器的工作目录

使用实例:

使用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命令。

docker run -it nginx:latest /bin/bash

root@b8573233d675:/#

可以通过-link name:alias命令连接指定容器,Docker 在两个互联的容器之间创建了一个安全隧道,而且不用映射它们的端口到宿主主机上,从而避免了暴露数据库端口到外部网络上。

使用 –name 选项可以为容器自定义命名,容器的名字必须是唯一的。然后创建一个web容器,连接到数据库容器。

docker run -d -P --name web --link db:db training/webapp python app.py

-p和-P用法

docker run -d -P training/webapp python app.py

docker run -d -p 5000:5000 training/webapp python app.py