目录
概述
用于学习和记录,以下内容来自chatgpt3.5,网络等,补充例子。
本文介绍了docker run
的基础用法,及这些options的详细解释和例子。包括 -a stdin;-d, -i, -t, -P, -p, --rm, --name, --dns, --dns-search
。
docker系列其他文章:docker专栏
由于内容比较多,分为两篇博文,本文只对部分options进行详细说明,其他选项说明可以查看:
docker基础(五)之docker run(第二弹)
其他相关:docker基础(六)之docker create和docker exec
语法
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker run 创建一个新的容器并运行一个命令
命令选项用法速查
-a stdin
: 指定标准输入输出内容类型,可选STDIN/STDOUT/STDERR
三项;-d
: 后台运行容器,并返回容器ID;-i
: 以交互模式运行容器,通常与-t
同时使用;-P
: 随机端口映射,容器内部端口随机映射到主机的端口-p
: 指定端口映射,格式为:主机(宿主)端口:容器端口-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=[]
: 开放一个端口或一组端口;--volume
,-v
: 绑定一个卷
OPTIONS说明:
-a stdin
指定标准输入输出内容类型,可选STDIN/STDOUT/STDERR
三项.
STDIN/STDOUT/STDERR指的是什么?
这些是标准的I/O流程符号
:
STDIN
(标准输入)是指向程序的输入流,可以通过键盘或者重定向输入到程序中。
STDOUT
(标准输出)是指向程序的输出流,程序默认会将输出发送到标准输出,可以重定向到文件或者其他地方。
STDERR
(标准错误)也是一个输出流,用于发送程序的错误信息。
在Docker中,-a stdin
参数可以将容器的标准输入重定向到指定的文件或设备,而STDIN/STDOUT/STDERR则是定义了标准的输入、输出、错误流的含义。
举例
假设我们有一个简单的Docker容器,该容器内部的程序需要从标准输入读取数据并将结果输出到标准输出或标准错误。
将容器的标准输入、标准输出、标准错误重定向到本地文件
我们可以使用docker run
命令来启动一个容器,并将容器的标准输入、标准输出、标准错误重定向到本地文件。假设我们有一个名为"input.txt"的文件,我们想将其内容作为容器的标准输入,并将容器的标准输出和标准错误分别重定向到"output.txt"和"error.txt"文件中,我们可以使用以下命令:
docker run -i -a stdin=input.txt -a stdout=output.txt -