Docker應用示例1--使用Docker創(chuàng)建Web服務

1健爬,目的

在已經掌握docker安裝放仗、docker倉庫的基本使用、docker鏡像和容器的基本操作和相互轉化的基礎上匙铡,可嘗試通過docker搭建一個web服務器,便于分布式部署或快速移植web服務器碍粥。
通過本文的學習鳖眼,可以了解學習docker容器與宿主機的文件和端口映射,進一步熟練使用docker容器嚼摩。

2钦讳,修改容器,搭建簡單的web服務

安裝nginx

# apt-get install nginx

修改nginx配置文件

# vi /etc/nginx/conf.d/web.conf 

# server的配置
server {
    # 監(jiān)聽端口 
    listen 81;
    # 項目的初始化頁面
    location / {
       root  /home/visual/nginx_web/;
       index index.html;
    }
}

修改開機啟動項

# vi /etc/rc.local

####!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

service ssh start
service nginx start

/bin/bash

exit 0

3枕面,創(chuàng)建鏡像愿卒,便于再次啟動容器

通過commit操作創(chuàng)建docker鏡像文件,上篇文章已經講過潮秘,命令如下

kevin@apple:~/docker$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
568e5204fff3        ubuntu              "/bin/sh -c 'while..."   40 hours ago        Exited (137) 38 hours ago                       kind_khorana
00f561d97811        ubuntu              "/bin/echo hello w..."   40 hours ago        Exited (0) 40 hours ago                         nifty_mcnulty
93a1b9d39683        ubuntu              "bash"                   40 hours ago        Exited (0) 5 seconds ago                        zealous_noether
abdc084f9821        hello-world         "/hello"                 41 hours ago        Exited (0) 18 hours ago                         sleepy_clarke
kevin@apple:~/docker$ docker commit 93a1b9d39683 learn/nginx:v2
sha256:ab92edd21696770f1eb37e9229b6834094a8d3381e5b4e9edc620b7927004bb4
kevin@apple:~/docker$ docker images
REPOSITORY                                       TAG                 IMAGE ID            CREATED             SIZE
learn/nginx                                      v2                  ab92edd21696        5 seconds ago       370MB
learn/visual_init                                v1                  56a4eab7dc5b        37 hours ago        321MB
registry.cn-beijing.aliyuncs.com/zhangsp/ai      visual_init         56a4eab7dc5b        37 hours ago        321MB
ubuntu                                           latest              14f60031763d        5 days ago          120MB
hello-world                                      latest              1815c82652c0        5 weeks ago         1.84kB

4琼开,啟動新容器

使用新創(chuàng)建的鏡像learn/nginx:v2,啟動新容器

# docker run -it --name nginx_test -h docker-nginx -p 8001:81 -p 8000:80 -v /home/kevin/docker/nginx_web/:/home/visual/nginx_web/ learn/nginx:v2 /bin/sh /etc/rc.local

啟動容器的參數介紹

  • -it枕荞,交互方式啟動
  • --name nginx_test柜候,指定新容器的名稱是nginx_test
  • -h docker-nginx搞动,指定新容器的主機名是docker-nginx
  • -p 8001:81 -p 8000:80,指定宿主機與docker容器的端口映射渣刷,宿主機的8001對應docker容器的81鹦肿,宿主機的8000對應docker容器的80
  • -v /home/kevin/docker/nginx_web/:/home/visual/nginx_web/,指定宿主機與docker容器的文件映射辅柴,宿主機的/home/kevin/docker/nginx_web/ 對應docker容器的 /home/visual/nginx_web/
  • learn/nginx:v2狮惜,指定啟動容器對應的鏡像是learn/nginx:v2,可以是鏡像ID
  • /bin/sh /etc/rc.local碌识,指定容器啟動后,執(zhí)行shell腳本是/etc/rc.local

查看docker容器虱而,容器nginx_test處于up狀態(tài)筏餐,說明啟動正常

kevin@apple:~/docker/nginx_web$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                         PORTS                                        NAMES
cbbbe7a5d47a        learn/nginx:v2      "/bin/sh /etc/rc.l..."   25 minutes ago      Up 24 minutes                  0.0.0.0:8000->80/tcp, 0.0.0.0:8001->81/tcp   nginx_test
966bd52b72da        ubuntu              "/bin/sh -c 'while..."   42 hours ago        Exited (137) 40 hours ago                                                   stupefied_knuth
00f561d97811        ubuntu              "/bin/echo hello w..."   42 hours ago        Exited (0) 42 hours ago                                                     nifty_mcnulty
93a1b9d39683        ubuntu              "bash"                   43 hours ago        Exited (0) About an hour ago                                                zealous_noether
abdc084f9821        hello-world         "/hello"                 43 hours ago        Exited (0) 20 hours ago                                                     sleepy_clarke

5,測試docker_nginx是否正常

通過瀏覽器測試8001端口

通過瀏覽器測試8001端口-1.png

通過瀏覽器測試8000端口

通過瀏覽器測試8000端口.png

修改宿主機的文件牡拇,并測試8001端口

  • 修改宿主機的/home/kevin/docker/nginx_web/index.html文件
kevin@apple:~/docker/nginx_web$ vi index.html 
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx! I am in docker!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx! I am in Docker!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a >nginx.org</a>.<br/>
Commercial support is available at
<a >nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
  • 通過瀏覽器測試8001端口魁瞪,發(fā)現“Welcome to nginx! I am in docker!”,說明內容已經修改惠呼,使用docker做為web服務器的功能已經OK
通過瀏覽器測試8001端口-2.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末导俘,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子剔蹋,更是在濱河造成了極大的恐慌旅薄,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件泣崩,死亡現場離奇詭異少梁,居然都是意外死亡,警方通過查閱死者的電腦和手機矫付,發(fā)現死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門凯沪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人买优,你說我怎么就攤上這事妨马。” “怎么了杀赢?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵烘跺,是天一觀的道長。 經常有香客問我葵陵,道長液荸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任脱篙,我火速辦了婚禮娇钱,結果婚禮上伤柄,老公的妹妹穿的比我還像新娘。我一直安慰自己文搂,他們只是感情好适刀,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著煤蹭,像睡著了一般笔喉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上硝皂,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天常挚,我揣著相機與錄音,去河邊找鬼稽物。 笑死奄毡,一個胖子當著我的面吹牛,可吹牛的內容都是我干的贝或。 我是一名探鬼主播吼过,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼咪奖!你這毒婦竟也來了盗忱?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤羊赵,失蹤者是張志新(化名)和其女友劉穎趟佃,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體慷垮,經...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡揖闸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了料身。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片汤纸。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖芹血,靈堂內的尸體忽然破棺而出贮泞,到底是詐尸還是另有隱情,我是刑警寧澤幔烛,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布啃擦,位于F島的核電站,受9級特大地震影響饿悬,放射性物質發(fā)生泄漏令蛉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望珠叔。 院中可真熱鬧蝎宇,春花似錦、人聲如沸祷安。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽汇鞭。三九已至凉唐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間霍骄,已是汗流浹背台囱。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留读整,地道東北人玄坦。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像绘沉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子豺总,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內容

  • 五车伞、Docker 端口映射 無論如何,這些 ip 是基于本地系統的并且容器的端口非本地主機是訪問不到的喻喳。此外另玖,除了...
    R_X閱讀 1,749評論 0 7
  • 轉載自 http://blog.opskumu.com/docker.html 一、Docker 簡介 Docke...
    極客圈閱讀 10,499評論 0 120
  • Docker — 云時代的程序分發(fā)方式 要說最近一年云計算業(yè)界有什么大事件表伦?Google Compute Engi...
    ahohoho閱讀 15,532評論 15 147
  • 0. 前言 docker是什么谦去?docker是用GO語言開發(fā)的應用容器引擎,基于容器化蹦哼,沙箱機制的應用部署技術鳄哭。可...
    sessionboy閱讀 3,854評論 2 49
  • 問題描述 1瓶可樂2塊錢,兩個空瓶子可以兌換一瓶新的局劲,現在有10塊錢勺拣,問最多能喝多少瓶? 快速解答 兩個空瓶子兌換...
    我什么都不知道呀閱讀 368評論 0 0