原文地址:Docker實戰指南(二):在Docker中搭建Nginx服務器nginx
學習Docker最快的方法就是直接使用,在Docker實戰指南(一):Docker介紹中,咱們已經介紹瞭如何快速搭建Docker,以及如何在Docker中運行咱們的第一個Hello World! 程序。此次咱們將介紹如何快速地搭建一個實用的Nginx服務器。web
咱們須要作的工做包含兩部分:docker
你將看到利用Docker快速構建一個實用的Nginx服務器是多麼的容易。tcp
Docker學習裏面最重要的是什麼?同其餘程序同樣,最重要的就是Help命令。
在命令行中敲入:學習
docker help
能夠看到docker所支持的全部命令,當你但願看到某條命令的消息用法時,能夠敲入:spa
docker help run
能夠詳細的看到run命令的用法。.net
很簡單,只須要敲入如下命令:命令行
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服務器?鍵入:
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服務器,怎麼操做呢?
因爲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頁面。
若是須要重啓咱們的Web服務器,敲入:
docker restart web
若是須要查看咱們的Web服務器日誌,敲入:
docker logs web
便可看到Web服務器的日誌信息。
若是須要結束咱們的Web服務器,敲入:
docker stop web
你能夠經過docker ps命令,來觀察發生了什麼。
咱們簡單的介紹瞭如何利用Docker來搭建一個簡單的Nginx服務器,以及經過BusyBox去訪問。經過此實戰,你應該對Docker有了更深刻的體會。
(本文出自csprojectedu.com,轉載請註明出處)