容器
容器是打包了应用和服务的环境。它是一个轻量级的虚拟机,每一个容器都由一组特定的应用和必要的依赖库组成。
容器的管理操作
容器的常见命令:查看、创建、启动、终止和删除等
查看指令详细帮助信息的方法,docker help或者man pages(例如man docker -run)
获取镜像
拉去一个最新的ubuntu镜像
使用docker images查看已有镜像
使用命令docker run -t -i ubuntu /bin/bash命令测试新获取的ubuntu镜像。命令的相关解释见下文
创建容器
有两个命令,一个是docker create,另一个是docker run 。二者的区别在于前者创建的容器处于停止状态,而后者不仅创建了容器,而且启动了容器。
docker ps 查看正在运行的容器 docker ps -a 查看所有容器,包含未启动的容器
想要让创建的容器立马进入运行状态,可以使用docker run命令,该命令等同于用docker create创建容器后在使用docker start启动容器。使用docker run命令可以创建两种类型的容器——后台型容器和交互型容器
交互型容器:运行在前台,通常会指定有交互的控制台,可以给容器输入,也可以得到容器的输出。关闭该容器的命令,在容器内部使用exit或者调用了docker stop、docker kill,容器会变成停止状态。
后台型容器:运行在后台,创建启动之后就与终端无关。即便终端关闭了,该后台容器也依然存在,只有调用了docker stop 或docker kill命令时才能够使容器变成停止状态。、
创建一个交互型容器
相关代码如下:
C:\Users\mrl>docker run -i -t --name=inspect_shell ubuntu /bin/bash
root@b9d82fc9c452:/#
由于已经存在ubuntu镜像,不会重新获取。
命令解释:
-i和-t,前者用于打开容器的标准输入(STDIN),后者告诉Docker为容器建立一个命令行终端。这两个标志为我们和容器提供了交互shell,是创建交互型容器的基本设置。后面的--name标志为容器指定了一个名字,这是一个可选项。当没有这个选项的时候,Docker会为我们去一个随机的名字。接下来,我们告诉Docker使用哪个镜像去创建容器,这里使用的是ubuntu。ubuntu镜像是一个基础镜像,我们可以使用基础镜像(例如ubuntu、fedora、debin、centos等)作为创建自己镜像的基础。这里我们只是用基础镜像来启动容器,没有添加任何东西。最后,告诉Docker要在容器里面执行的命令/bin/bash。
root@b9d82fc9c452:/#
@前面的是我们在容器登录的用户root,后面的b9d82fc9c452是容器的主机名。可以使用ctrl+D或者exit命令推出该容器。容器停止不代表容器销毁,其实容器还在,只是不再是运行状态。
创建一个后台型容器
相关代码如下:
C:\Users\mrl>docker run --name daemon_while -d ubuntu /bin/bash -c "while true;do echo hello world;sleep 1;done"
df4fe160cc4b3f503cfa5c086ad4fb40148e05bed118103ad5f1ff32d522963c
C:\Users\mrl>
上面的命令没有像前面的容器那样关联到一个sehll,而是返回了一个容器ID后直接返回到了宿主机的命令提示符。我们可以通过docker ps命令,查看新建的容器是否在运行
现在让我们终止容器
C:\Users\mrl>docker stop daemon_while
daemon_while
C:\Users\mrl>docker stop inspect_shell
inspect_shell