Docker run 启动容器
使用docker run [OPTIONS] IMAGE [COMMAND] [ARG...]选项名称描述-a指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项 详情-w指定容器的工作目录-c指定容器CPU权重, 在CPU共享场景使用-m指定容器的内存上限-d后台运行容器,并返回容器ID 详情-p端口映...
·
使用
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(终端)
更多推荐
已为社区贡献3条内容
所有评论(0)