docker create 和 docker run是创建容器的两个命令。
docker create用于创建一个处于静止状态的容器。
docker run = docker create + docker start
如下图所示,创建容器后,会立刻返回(虽然立刻并没什么卵用)容器的ID,每个容器都有唯一的ID。
1.容器创建命令解析
容器有两种类型:交互型容器和后台型容器,具体的含义就是字面意思,类似于在控制台中执行shell命令添加nohup。
docker run -i -t —name=inspect_shell ubuntu /bin/bash
上面这条语句表示创建一个交互型容器,其中:
-i表示打开容器的标准输入;
-t表示为容器建立一个命令行终端;
-i和-t是创建交互型容器的基本设置,创建的是后台型容器时使用的参数是-d。
--name表示指定一个容器的名字,可选项;
ubuntu参数表示使用哪个镜像去创建容器。ubuntu是一个基础镜像,类似的基础镜像还有centos、fedora等等;
/bin/bash表示在容器中执行的命令;
2.图解容器的创建流程
a. 运行docker run命令后,docker先在本地搜索指定的镜像;
b. 如果没有找到指定镜像,就去公有仓库DockerHub中搜索并下载指定镜像;
如果在公有仓库上也找不到指定镜像,创建失败,如下;
c. 使用指定镜像创建容器并启动;
d. 分配文件系统和配置容器的网络。 容器的文件系统是在只读的镜像文件上增加一层可读写的文件层,这样做可以保证镜像不变而只是记录改变的数据;
e. 执行应用程序;
f. 停止;
容器的创建流程如下图所示:
参考文档:《Docker开发实践》第二章2.1.1创建容器。