Docker容器运行方式

Docker容器单次运行

语法

Docker 单次运行的语法为:

haicoder(www.haicoder.net)# docker run IMAGE [COMMAND] [ARG]

Docker 单次运行,即 Docker 启动后执行 COMMAND 命令结束后,立即退出 Docker。

案例

使用 docker run 命令单次运行 Docker 。

haicoder(www.haicoder.net)# docker run centos /bin/echo "Docker from Haicoder" #输出 Docker from Haicoder

我们使用 docker run 命令单次运行 Docker,即运行后 Docker 立即退出。

运行结束后,我们使用 docker ps 命令,查看正在运行的 docker,显示输出如下图所示:

03 docker ps.png

docker ps 命令没有任何的输出,说明刚才运行的 Docker 已经退出。

参数解释

命令 说明
docker Docker 的二进制执行文件。
run 与前面的 docker 组合来运行一个容器。
centos 要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果存在,则直接运行。如果不存在,Docker 就会从镜像仓库 Docker Hub 下载该镜像,然后再运行。
/bin/echo “” 在启动的容器里执行的命令。

以上命令的完整理解为:Docker 以 centos 镜像创建一个容器,然后在容器里执行 bin/echo “Docker from Haicoder”,输出结果后退出 Docker。

Docker容器交互式运行

语法

Docker交互式运行的语法为:

haicoder(www.haicoder.net)# docker run -i -t IMAGE [COMMAND] [ARG]

Docker交互式运行,即 Docker 启动直接进入 Docker 内部。

案例

使用 docker run -i -t 命令以交互式方式运行 Docker 。

haicoder(www.haicoder.net)# docker run -i -t centos /bin/bash

我们使用 docker run -i -t 命令以交互式方式运行 Docker。

以交互式方式运行 Docker 后,终端显示如下图所示:

04 dokcer run it.png

以交互式方式运行 Docker 后,此时命令行提示符变成了 docker image id 的形式,此时已经进入了 Docker 容器的内部,我们可以在里面执行任何 Centos 的命令。

使用 exit 命令或者 Crtrl+d,退出 Docker容器,回到宿主机。

参数解释

命令 说明
docker Docker 的二进制执行文件。
run 与前面的 docker 组合来运行一个容器。
-i 与容器内的标准输入 (STDIN) 进行交互。
-t 在新容器内指定一个伪终端或终端。
centos 要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果存在,则直接运行。如果不存在,Docker 就会从镜像仓库 Docker Hub 下载该镜像,然后再运行。
/bin/bash 在启动的容器里执行的命令。

Docker容器后台运行

语法

Docker后台运行的语法为:

haicoder(www.haicoder.net)# docker run -d IMAGE [COMMAND] [ARG]

Docker后台运行,即 Docker 启动直接进入后台。

案例

使用 docker run -d 命令以后台方式运行 Docker 。

haicoder(www.haicoder.net)# docker run -d centos /bin/bash -c "while true; do echo hello world; sleep 3; done" #输出 5c4c1e900a4ccbfe38f72b6ea995f883d6407fbd29bcdc205c6392ff22d7ab1f

我们使用 docker run -d 命令以后台方式运行 Docker。

以后台方式运行 Docker 后,终端显示如下图所示:

05 docker run d.png

以后台方式运行 Docker 后,此时终端输出了完整的容器 Id。

使用 docker ps 命令,查看当前正在运行的容器,发现有刚才启动的容器。

此时,我们使用 docker logs 命令,查看 Docker 内部的日志,显示如下图:

06 docker run d logs.png

可以看出,此时 Dokcer 内部,不停的输出 hello world。

参数解释

命令 说明
docker Docker 的二进制执行文件。
run 与前面的 docker 组合来运行一个容器。
-d 以后台方式运行容器。
centos 要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果存在,则直接运行。如果不存在,Docker 就会从镜像仓库 Docker Hub 下载该镜像,然后再运行。

Docker容器运行方式总结

Docker单次运行的语法为:

docker run IMAGE [COMMAND] [ARG]

Docker交互式运行的语法为:

docker run -i -t IMAGE [COMMAND] [ARG]

Docker后台运行的语法为:

docker run -d IMAGE [COMMAND] [ARG]