Docker run 启动容器

使用

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

选项

名称描述
-a指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项 详情
-w指定容器的工作目录
-c指定容器CPU权重, 在CPU共享场景使用
-m指定容器的内存上限
-d后台运行容器,并返回容器ID 详情
-p端口映射,格式为:宿主机端口:容器端口 详情
-i以交互模式运行容器,通常与 -t 同时使用 详情
-t为容器重新分配一个tty伪输入终端,通常与 -i 同时使用 详情
-v挂载数据卷
--name为容器指定一个名称,后续可以通过名字进行容器管理
--rm指定容器停止后自动删除容器(不支持以docker run -d启动的容器)
-h ""指定容器的主机名
-e key="value",--env=[]设置环境变量
--env-file=[]从指定文件读入环境变量
--net=""指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型

参数说明

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

如果在执行run命令时没有指定-a参数,那么Docker默认会挂载所有标准数据流,包括输入输出和错误,你可以单独指定挂载哪个标准流;

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

如果在docker run后面追加-d=true或者-d,那么容器将会运行在后台模式。此时所有I/O数据只能通过网络资源或者共享卷组来进行交互。因为容器不再监听你执行docker run的这个终端命令行窗口。但你可以通过执行docker attach来重新附着到该容器的回话中。需要注意的是,容器运行在后台模式下,是不能使用–rm选项的。

-p:
端口映射,格式为:宿主机端口:容器端口

  • 指定要映射的IP和端口,但是在一个指定端口上只可以绑定一个容器。支持的格式有
    • hostPort:containerPort(映射所有接口地址)
      将本地的 5000 端口映射到容器的 5000 端口,可以执行如下命令:
      $ sudo docker run -d -p 5000:5000 training/webapp python app.py 此时默认会绑定本地所有接口上的所有地址
    • ip:hostPort:containerPort(映射指定地址的指定端口)
      指定映射使用一个特定地址,比如 localhost 地址 127.0.0.1
      $ sudo docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py
    • ip::containerPort(映射指定地址的任意端口)
      绑定 localhost 的任意端口到容器的 5000 端口,本地主机会自动分配一个端口。
      sudo docker run -d -p 127.0.0.1::5000 training/webapp python app.py
      还可以使用 udp 标记来指定 udp 端口
      $ sudo docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py
  • -p 标记可以多次使用来绑定多个端口

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

即使没有连接,仍然保持STDIN打开

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

用比较简单容易理解的话说是,-i 开启了input(输入)功能,连接了-t开启的一个容器里边的terminal(终端)

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值