阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

如何交互式地创建一个Docker容器

145次阅读
没有评论

共计 2492 个字符,预计需要花费 7 分钟才能阅读完成。

大家好,今天我们来学习如何使用一个 docker 镜像交互式地创建一个 Docker 容器。当我们从镜像中启动一个 Docker 进程,Docker 就会获取该镜像及其父镜像,并重复这个过程,直到到达基础镜像。然后联合文件系统(UFS)会在其顶层添加一个读写层。读写层被称之为容器,它包含了一些关于父镜像信息及一些其他的信息,如唯一 ID,网络配置和资源限制等。容器是有状态的,其状态可以从 运行态 切换到 退出态 。一个处于 运行态 的容器包含了在 CPU 上面运行的进程树,于其它在该主机上运行的进程相隔离,而 退出态 是指文件系统的状态,并保留了其退出值。你可以使用它来启动,停止和重启一个容器。

Docker 技术为 IT 界带来了巨大的改变,它使得云服务可以用来共享应用和工作流程自动化,使得应用可以用组件快速组合,消除了开发、品质保证、产品环境间的摩擦。在这篇文章中,我们将会建立 CentOS 环境,然后用 Apache 网络服务器提供一个网站服务。

如何交互式地创建一个 Docker 容器

这是一个快速且容易的教程,讨论我们怎样使用交互的 shell,以交互的方式来创建一个容器。

 

1. 运行一个 Docker 实例

Docker 首先会尝试从本地取得并运行所需的镜像,如果在本地主机上没有发现,它就会从 Docker 公共注册中心拉取。这里,我们将会拉取镜像并在 Docker 容器中创建一个 Fedora 实例,并连接到它的 tty 上的 bash shell。

  1. # docker run -i -t fedora bash

如何交互式地创建一个 Docker 容器

 

2. 安装 Apache 网络服务器

现在,在我们的 Fedora 基本镜像实例准备好后,我们将会开始交互式地安装 Apache 网络服务器,而不是为它创建 Dockerfile。为了做到这点,我们需要在终端或者 shell 运行以下命令。

  1. # yum update

如何交互式地创建一个 Docker 容器

  1. # yum install httpd

如何交互式地创建一个 Docker 容器

退出容器的 tty。

  1. # exit

 

3. 保存镜像

现在,我们要去保存在 Fedora 实例里做的修改。要做到这个,我们首先需要知道实例的容器 ID。而为了得到 ID,我们又需要运行以下命令(LCTT 译注:在容器外执行该命令)。

  1. # docker ps -a

如何交互式地创建一个 Docker 容器

然后,我们会保存这些改变为一个新的镜像,请运行以下命令。

  1. # docker commit c16378f943fe fedora-httpd

如何交互式地创建一个 Docker 容器

这里,修改已经通过使用容器 ID 保存起来了,镜像名字叫 fedora-httpd。为了确认新的镜像是否在运行,我们将运行以下命令。

  1. # docker images

如何交互式地创建一个 Docker 容器

 

4. 添加内容到新的镜像

我们自己新的 Fedora Apache 镜像正成功的运行,现在我们想添加一些我们网站的网页内容到 Apache 网络服务器,使得网站能够开箱即用。为做到这点,我们需要创建一个新的 Dockerfile,它会处理从复制网页内容到启用 80 端口的所有操作。要达到这样的目的,我们需要使用我们最喜欢的文本编辑器创建 Dockerfile 文件,像下面演示的一样。

  1. # nano Dockerfile

现在,我们需要添加以下的命令行到文件中。

  1. FROM fedora-httpd
  2. ADD mysite.tar /tmp/
  3. RUN mv /tmp/mysite/* /var/www/html
  4. EXPOSE 80
  5. ENTRYPOINT ["/usr/sbin/httpd"]
  6. CMD ["-D", "FOREGROUND"]

如何交互式地创建一个 Docker 容器

这里,上述的 Dockerfile 中,放在 mysite.tar 里的网页内容会自动解压到 /tmp/ 文件夹里。然后,整个站点会被移动到 Apache 的网页根目录 /var/www/html/,命令 expose 80 会打开 80 端口,这样网站就能正常访问了。其次,入口点放在了 /usr/sbin/https 里面,保证 Apache 服务器能够执行。

 

5. 构建并运行一个容器

现在,我们要用刚刚创建的 Dockerfile 创建我们的容器,以便将我们的网站添加到上面。为做到这,我们需要运行以下命令。

  1. # docker build -rm -t mysite .

如何交互式地创建一个 Docker 容器

建立好我们的新容器后,我们需要要用下面的命令来运行容器。

  1. # docker run -d -P mysite

如何交互式地创建一个 Docker 容器

 

总结

最后,我们已经成功的以交互式的方式建立了一个 Docker 容器。在本节方法中,我们是直接通过交互的 shell 命令建立我们的容器和镜像。在建立与配置镜像与容器时,这种方法十分简单且快速。如果你有任何问题,建议和反馈,请在下方的评论框里写下来,以便我们可以提升或者更新我们的文章。谢谢!祝生活快乐 :-)

Docker 安装应用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

在 Docker 中使用 MySQL http://www.linuxidc.com/Linux/2014-01/95354.htm

在 Ubuntu Trusty 14.04 (LTS) (64-bit)安装 Docker http://www.linuxidc.com/Linux/2014-10/108184.htm 

Docker 安装应用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

Ubuntu 14.04 安装 Docker  http://www.linuxidc.com/linux/2014-08/105656.htm 

阿里云 CentOS 6.5 模板上安装 Docker http://www.linuxidc.com/Linux/2014-11/109107.htm 

Docker 的详细介绍:请点这里
Docker 的下载地址:请点这里


via: http://linoxide.com/linux-how-to/interactively-create-docker-container/

作者:Arun Pyasi 译者:wi-cuckoo 校对:wxy

本文由 LCTT 原创翻译,Linux 中国 荣誉推出

来源:http://linux.cn/article-5484-1.html

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-05/117809.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计2492字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中