(做者:陳玓玏)html
先進入管理員模式: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呢?你須要兩個東西: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