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