docker run = 先docker create 再 docker start
-t 表示 让docker分配一个伪终端并绑定到容器的标准输入上
当使用了-t就表明可以进行命令操作了,但只能输入一次,输入后就关闭了。
-i 表示 让容器的标准输入保持打开,可以连续输入命令
可以明显感觉到两者区别。。。
ubuntu就是镜像的名词,ubuntu也可以换成镜像的ID
/bin/bash就是需要执行的指定的应用。
这个命令可以不填,不填的话,容器根据镜像预设的方式启动。
命令如果执行完毕了,或者叫指定的应用终结时,容器会自动停止。
/bin/bash这个命令肯定是一执行就结束了,那么相应的容器也会停止。如果你启动个tomcat,如果tomcat没有关闭,容器是不会自动停止的。
因为这里是启动一个bash终端,因此-ti命令才有作用,此时配合这两个参数才允许用户进行持续交互,但是交互完后,你退出,容器也会终止。
用户可以使用exit或ctrl+d退出容器,此时退出的容器会被终止。
若是使用其他命令,如echo aaa,docker执行后会立即终止容器。
此时docker run -ti ubuntu echo aaa 与 docker run ubuntu echo aaa是一个效果,都是启动后执行完命令就立即停止容器了。
-d 表示 此容器以守护状态运行,启动后会返回一个容器ID。
曾经我以为这玩意是指启动后,指定的运行程序就算结束了,此容器也不会结束。
但其实,并不是这样。。。指定的程序结束了。。。容器也会结束。。。
以守护状态运行的镜像只会返回一个容器的ID给你,并不会打印docker的日志。
以-d启动的容器会返回一个容器ID
可以使用docker ps命令查看是否以守护状态启动成功。
可以使用docker ps查看所有启动的容器
可以使用docker ps -a 查看所有已经创建了的容器,包含启动的与未启动的。
xxx可以是docker ps中的names也可以是ID
docker create用法和docker run是一样的,docker run其实就是在docker create的预设的基础上再调用docker start
注意 docker create没有-d,没有守护状态。
xxx可以是docker ps中的names也可以是ID
用户可以使用exit或ctrl+d退出容器,此时退出的容器会被终止。
exec即进入容器的命令
-t 表示 让docker分配一个伪终端并绑定到容器的标准输入上
-i 表示 让容器的标准输入保持打开,可以连续输入命令
-d -d 表示 此容器以守护状态运行。
mad_davinci为容器名称,可以是容器名,也可以是容器ID。
/bin/bash 为进入容器后执行的程序
xxx可以是容器名称也可以是容器ID,并且xxx可以为多个容器,他们用空格分隔即可。