Docker实战指南(二):在Docker中搭建Nginx服务器


Introduction

学习Docker最快的方法就是直接使用,在 Docker实战指南(一):Docker介绍 中,我们已经介绍了如何快速搭建Docker,以及如何在Docker中运行我们的第一个Hello
World! 程序。这次我们将介绍如何快速地搭建一个实用的Nginx服务器。

需要做什么

我们需要做的工作包含两部分:

  • 搭建一个包含 Nginx服务器 守护进程 的Docker容器
  • 使用一个 BusyBox 的Docker容器访问我们的Nginx服务器
    你将看到利用Docker快速构建一个实用的Nginx服务器是多么的容易。

Help命令

Docker学习里面最重要的是什么?同其他程序一样,最重要的就是Help命令。
在命令行中敲入:
docker help
可以看到docker所支持的所有命令,当你希望看到某条命令的消息用法时,可以敲入:
docker help run
可以详细的看到run命令的用法。

创建一个Nginx服务器

很简单,只需要敲入以下命令:
docker run –detach –name web nginx
如果出现权限问题,请在最前面加入sudo:
sudo docker run –detach –name web nginx
这将会从 Docker Hub
中下载一个最新的包含Nginx的Docker镜像,并以守护进程的方式运行。
下载结束后,会产生一个类似
df4f04be4513c226759d0adebef7508775071aaa10dc69792cdb84889bd77692
的ID,这个就是这个运行中的Docker容器的唯一标志ID,某些Docker命令会使用这个ID.

查看Nginx服务器

如何查看启动的Nginx服务器?键入:
docker ps
如果出现权限问题,仍然是加sudo:
sudo docker ps
成功的话,你会看到类似下面的信息:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
df4f04be4513 nginx:latest “nginx -g ‘daemon off” 2 minutes ago Up 2 minutes 80/tcp, 443/tcp web

访问Nginx服务器

想访问一下在容器中的Nginx服务器,怎么操作呢?
由于namespace的存在,我们看到的80端口中的Nginx服务器,并不是存在于主机上的80端口,而是在Docker容器中的80端口。关于namespace的话题后面我们会介绍,这里采用最简单的方式来访问,即使用一个叫BusyBox的Docker容器访问我们的Nginx服务器。
创建BusyBox的Docker容器,并通过shell访问我们的Nginx服务器的Docker容器,敲入以下命令即可:
docker run –interactive –tty –link web:web –name my_tty busybox /bin/sh
如果出现权限问题,请在最前面加入sudo:
sudo docker run –interactive –tty –link web:web –name my_tty busybox /bin/sh
这个命令将下载一个最新的包括/bin/sh等命令的一个BusyBox的Docker镜像,并通过tty的方式进行交互,同时以非守护进程的方式运行/bin/sh.
成功后,将出现/bin/sh的提示符:
/ #
使用wget命令,访问我们的Nginx服务器:
/ # wget -O - http://web/
成功的话,你将看到一个title为Webcome to nginx!的HTML页面。

其他一些有用的命令

重启Docker容器

如果需要重启我们的Web服务器,敲入:
docker restart web

查看服务器日志

如果需要查看我们的Web服务器日志,敲入:
docker logs web
即可看到Web服务器的日志信息。

停止Docker容器

如果需要结束我们的Web服务器,敲入:
docker stop web
你可以通过docker ps命令,来观察发生了什么。

Summary

我们简单的介绍了如何利用Docker来搭建一个简单的Nginx服务器,以及通过BusyBox去访问。通过此实战,你应该对Docker有了更深入的体会。
(本文出自 csprojectedu.com
,转载请注明出处)


文章作者: SafePoker
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 SafePoker !
  目录