Docker run 主要命令详解

docker run 用于创建一个新的容器并运行一个命令
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

-i: 以交互模式运行容器,通常与 -t 同时使用
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
注意:解释上it经常连用,但是在某些场景下,比如clickhouse-client执行sql文件,不可以使用-t,会报错:the input device is not a TTY。所以还是要理解i和t分别的含义。
-d: 后台运行容器,并返回容器ID;
--name="clickhouse-server": 为容器指定一个名称;
--link=[]: 添加链接到另一个容器 ;
-P: 随机端口映射,容器内部端口随机映射到主机的高端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
--expose=[]: 开放一个端口或一组端口;
--volume , -v: 绑定一个卷
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
-h "sibat": 指定容器的hostname;
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
-m :设置容器使用内存最大值;
--rm: 在Docker容器退出时,默认容器内部的文件系统仍然被保留,以方便调试并保留用户数据。但是,对于foreground容器,由于其只是在开发调试过程中短期运行,其用户数据并无保留的必要,因而可以在容器启动时设置--rm选项,这样在容器退出时就能够自动清理容器内部的文件系统。
显然,--rm选项不能与-d同时使用(或者说同时使用没有意义),即只能自动清理foreground容器,不能自动清理detached容器
执行docker run命令带--rm命令选项,等价于在容器退出后,执行docker rm -v

举例:

  1. 使用镜像clickhouse-server以交互模式启动一个容器,在容器内执行/bin/bash命令。
docker run -it clickhouse-server /bin/bash
  1. clickhouse-client 执行sql语句
docker run -i --rm --link clickhouse-server:clickhouse-server yandex/clickhouse-client --host clickhouse-server --database=default --multiquery < /tmp/taxi_gps.sql

你可能感兴趣的:(Docker run 主要命令详解)