1、docker run IMAGE [command] [ARG...]
IMAGE:指定启动容器所使用的操作系统镜像
command:容器启动后运行的命令
ARG…:容器命令的参数
run 在容器中执行命令
2、启动交互式容器
docker run -i -t IMAGE /bin/bash
-i --interactive=true | false 默认是false 告诉docker守护进程为容器始终打开标准输入
-t --tty=true | false 默认是false 告诉docker要为创建的容器创建一个伪tty终端
-rm 作用是当容器退出时,容器和相关的文件系统会被一并删除(为了避免已停止的容器数量不断增加)
3、自定义容器名
docker run --name=自定义名 -i -t IMAGE /bin/bash
docker run 的其他命令参数
- -a, --attach 把指定的数据流(如stdout之类)连接至终端,若未指定,则默认连接stdout和stderr.若数据流未指定,而容器以交互模式(-i)启动,则stdin也会连接至终端
- -d, --detach 使容器在“分离”模式下运行。容器会在后台运行,而命令的返回值是容器的 ID。
- –restart
配置 Docker 在什么情况下尝试重新启动已退出的容器。参数为 no 意味着永远不会尝
试重新启动容器; always 指不管退出状态是什么,总会尝试重新启动; on-failure 仅
当退出状态不为 0 的时候才会尝试重启 ,并且可以追加一个可选参数,指定尝试重启
的次数,超过重启次数就会放弃(如果没有指定,那就一直重试)。例如, docker run
–restart on-failure:10 postgres 将启动 postgres 容器,并当退出值不为 0 的时候,
尝试重启最多 10 次。 - –rm
退出时自动删除容器。不能与 -d 选项同时使用。 - -e, --env 设置容器内的环境变量。例如:
$ docker run -e var1=val -e var2=“val 2” debian env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=b15f833d65d8
var1=val
var2=val 2
HOME=/root
另外, --env-file 选项可以经文件传入环境变量。- -h, --hostname NAME
设置容器的 unix 主机名为 NAME 。例如:
$ docker run -h “myhost” debian hostname - -v, --volume
这个选项可以用来设置数据卷(数据卷即一个容器中的文件或目录,实际属于主机的文
件系统,而非容器的联合文件系统的一部分),有两种形式的参数可供使用。第一种形
式仅指定容器中的目录,Docker 会自行选定一个主机上的目录与之绑定。第二种形式
除了指定容器目录,还指定与容器目录绑定的主机目录。 - –volumes-from
挂载指定容器拥有的数据卷。经常用于数据容器。
与网络连接有关的选项。
- –expose
与 Dockerfile 的 EXPOSE 指令功能一样。指定容器将会使用的端口或端口范围,但并不会
把端口打开。只有与 -P 参数同时使用,以及在连接容器时,才有真正意义。 - –link
建立一个与指定容器连接的内部网络接口 - -p, --publish
“发布”容器的端口,使主机能访问它。若没有指定主机端口,则会随机分配一个高端
口,可通过 docker port 命令查看分配了哪个端口。还可以指定端口是在主机的哪个网
络接口开放。
-p 8000:80 参数告诉 Docker 将主机的 8000 端口转发至容器的 80 端口。 - -P, --publish-all
“发布”所有已指定为开放(exposed)的容器端口,使主机能访问它们。每个容器端口
均对应一个随机挑选的高端口。 docker port 命令可以用来查看端口之间的映射关系。
-P 选项来告诉 Docker 自动选择一个主机上未使用的端口
会覆盖Dockerfile的设置
- –entrypoint
把参数指定为容器的入口(entrypoint),覆盖任何 Dockerfile 中的 ENTRYPOINT 指令。 - -u, --user
设置命令运行时所使用的用户。可以以用户名或 UID 指定。此选项会覆盖 Dockerfile 中
的 USER 指令。 - -w, --workdir
将参数的路径设置为容器的工作目录。此选项会覆盖 Dockerfile 中的 WORKDIR 指令。
4、查看容器
docker ps [-a] [-l]
-a:列出所有的容器
-l:列出最新创建的容器
docker inspect [CONTAINER ID] or [NAMES]
对容器详细检查,返回配置信息
5、重新启动停止的容器
docker start -i [容器名]
6、删除停止的容器
docker rm 容器名
只能删除停止的容器,不能删除正在启动的容器