首页 > 代码库 > (四)运行第一个容器

(四)运行第一个容器

创建第一个容器:

创建一个容器很容易,我们使用docker run命令就可以完成,如下图:

docker run -i -t centos:6.6 /bin/bash

技术分享

run命令是docker命令中的一个子命令,作用是运行一个容器

参数说明
-i保持容器中的STDIN是打开的,也就是标准输入
-t为容器开启一个伪TTY终端
centos:6.6

这个是镜像名称,这里适用的是官方镜像,centos是仓库名称,6.6是标签。一个仓库可能有多个镜像,如果不指定具体标签(TAG),则默认会适用latest的,也就是仓库中最新的。

如果是适用非官方镜像他人或者你自己构建的镜像,这里的各式是 用户名/仓库名

如果第一次你不知道镜像仓库名称和标签,请访问 https://hub.docker.com/

/bin/bash
容器启动后运行的程序,不是必须的

命令执行完毕后会自动进入容器中,正向上图显示的那样的命令提示符号是 root@3d55c5bf0886 ,这一串字符是你建立容器的ID,同时也是默认的容器主机名称,如下图:

技术分享

如果使用--name参数可以设置容器的名字,但是容器ID和系统主机名还是随机生成的。

技术分享


docker run命令运行的过程是这样的

首先docker会检查本地的镜像是否包含centos:6.6,如果有就使用本地镜像,如果没有就连接官方的Docker Hub Registry去下载,如果找到就会下载然后保存到本机中,然后尝试使用该镜像创建一个容器,最后运行指定的命令。这个容器拥有自己的独立的文件系统、网络(默认为桥接网络)。

看下图,第一张为宿主机的目录内容,第二张为容器的目录内容,目录都是一样的,但是内容不同,这就证明文件系统是隔离的。

技术分享

技术分享



查看网络:

技术分享

可以看到你会像使用普通Linux系统那样使用容器,同时默认使用了桥接网络。另外我们还可以安装软件

技术分享

使用exit命令退出容器

一旦我们执行了exit命令,/bin/bash命令也就结束了,同时容器也停止了。但是容器还是存在的,可以通过下面的命令查看:

docker ps -a

技术分享


如何重启启动一个容器:

使用下面的命令重新启动一个容器

docker start 容器名称/容器ID

技术分享

我们看到 UP 标志,但是这个容器是后台运行的,那我们如何连接到这个容器的shell呢?


重新连接到运行中的容器:

必须要先启动一个容器,才能连接

docker attach 容器名称/容器ID

技术分享

注意:运行命令后,会出现停滞的情况,其实不是停滞,你需要再次按一下回车才会进入到容器的命令提示符。当你再次执行exit后,容器会再次停止。


创建后台运行的容器:

如果需要长期运行容器,我们就要创建没有交互式会话的守护式容器,生产环境中基本都是这么运行运行的。我们使用下面的命令来后台运行容器:

使用-d参数来设置后台运行;--name的含义是设置一个容器名称,这样以后重启、删除就可以使用命令了。

docker run --name 容器名称 -d -i -t 镜像 /bin/bash

技术分享

注意:上图创建容器后列出了一长串字符,这个是长UUID,一般我们使用短UUID或者容器名称来操作容器。

下面我们连接到这个BB容器

技术分享

上面这个过程类似你先创建一个前台交互式容器,然后exit退出,然后在docker start启动。


本文出自 “小恶魔的家” 博客,请务必保留此出处http://littledevil.blog.51cto.com/9445436/1863552

(四)运行第一个容器