使用Docker來運行WebApp

原文: 使用Docker來運行WebApp

(做者:陳玓玏)html

一、加載鏡像到容器並運行webapp腳本

先進入管理員模式:python

su root

而後使用已有的webapp鏡像來練習在docker上運行webapp須要先把鏡像下載到docker中;web

docker pull training/webapp

加載完成以後,咱們須要把webapp的端口設置成本機的開放端口,若是是直接運行腳本和設置端口一次性完成,方法以下:sql

docker run -d -P training/webapp python app.py

這樣就是在默認端口上(-P將docker端口映射到主機),在後臺運行(-d設置)training/webapp這個鏡像中的Python腳本文件app.py。docker

二、訪問webapp

那麼怎麼訪問這個正在運行的webapp呢?你須要兩個東西:1)你主機的ip地址;2)你容器映射到的端口地址。
獲取ip地址的命令:瀏覽器

ifconfig -a

輸出結果中的inet就是你須要的ip地址。接下來查找端口號:bash

#查找正在運行的容器信息
docker ps
#查找全部的容器信息
docker ps -a

輸出結果以下:markdown

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
091ea847d0d2        training/webapp     "python app.py"     5 seconds ago       Up 4 seconds        0.0.0.0:32769->5000/tcp   boring_elion

結果中的PORTS選項給出了端口號,32769->5000表示主機中使用的端口是32769,而容器中的網絡端口是5000。
有了IP地址和端口號,在瀏覽器中輸入網址爲 ip地址:端口號,這樣就能訪問webapp了,此例中輸出的結果是「Hello world!」網絡

三、可能想要改變一下端口號

若是不改變端口號,每次開啓一個新容器都會在一個新的端口上運行,不過端口分配比較隨機,因此每次訪問webapp都須要先查詢端口號,若是要改變主機使用的端口,用如下命令:app

docker run -d -p 5000:5000 training/webapp python app.py

記得這裏的-p要小寫。
此時再嘗試更改網址中的端口號爲5000,依然能成功。不過須要注意的是,冒號前面的端口號表示主機中使用的端口號,但這個端口號也不是胡亂設置的,有可能有不開放的端口號或不存在的端口號,好比你設置成6000,就不會訪問成功。

四、暫停容器運行

最後若是你想暫停應用,輸入如下命令:

#經過容器名稱中止
docker stop boring_elion
#經過容器id中止
docker stop e6d2831a4f82

此時你再經過docker ps命令不會查到任何容器信息了,只能經過docker ps -a來查看了,不過也不會有端口信息,由於此時應用已經關閉了。再次開啓用如下命令:

docker start boring_elion

五、移除容器

最後移除容器:

docker rm thirsty_villani

若是提示正在運行,不能移除那麼嘗試如下命令:

docker rm -f thirsty_villani

-f是強制移除正在運行的容器。
若是想要自動在容器中止運行後刪除,那麼經過如下命令來建立容器:

docker run -d -P --rm training/webapp python app.py

這樣在你中止容器的運行後,它會自動remove掉,不須要再手動清理了。

參考文章:本文是菜鳥教程的學習筆記,主要是本身的操做筆記,有不少本身的註解,也能夠直接看菜鳥教程:
http://www.runoob.com/docker/docker-container-usage.html

相關文章
相關標籤/搜索