Docker入門 - 004 Docker 容器使用

 

 

Docker 客戶端

docker 客戶端很是簡單 ,咱們能夠直接輸入 docker 命令來查看到 Docker 客戶端的全部命令選項。python

docker

能夠經過命令 docker command --help 更深刻的瞭解指定的 Docker 命令使用方法。web

例如咱們要查看 docker stats 指令的具體使用方法:docker

docker stats --help


運行一個web應用

前面咱們運行的容器並無一些什麼特別的用處。瀏覽器

接下來讓咱們嘗試使用 docker 構建一個 web 應用程序。網絡

咱們將在docker容器中運行一個 Python Flask 應用來運行一個web應用。app

docker pull training/webapp  # 載入鏡像
docker run -d -P training/webapp python app.py

參數說明:webapp

  • -d:讓容器在後臺運行。tcp

  • -P:將容器內部使用的網絡端口映射到咱們使用的主機上。ui


查看 WEB 應用容器

使用 docker ps 來查看咱們正在運行的容器spa

docker ps

PORTS
0.0.0.0:32769->5000/tcp

Docker 開放了 5000 端口(默認 Python Flask 端口)映射到主機端口 32769 上。

這時咱們能夠經過瀏覽器訪問WEB應用

咱們也能夠指定 -p 標識來綁定指定端口。

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

docker ps查看正在運行的容器

容器內部的 5000 端口映射到咱們本地主機的 5000 端口上。


網絡端口的快捷方式

經過docker ps 命令能夠查看到容器的端口映射,docker還提供了另外一個快捷方式:docker port,使用 docker port 能夠查看指定 (ID或者名字)容器的某個肯定端口映射到宿主機的端口號。

上面咱們建立的web應用容器ID爲:7a38a1ad55c6 名字爲:determined_swanson

我可使用docker port 7a38a1ad55c6 或docker port determined_swanson來查看容器端口的映射狀況

docker port 7a38a1ad55c6
5000/tcp -> 0.0.0.0:5000
docker port determined_swanson
5000/tcp -> 0.0.0.0:5000

查看WEB應用程序日誌

docker logs [ID或者名字] 能夠查看容器內部的標準輸出。

1 runoob@runoob:~$ docker logs -f 7a38a1ad55c6
2  * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
3 192.168.239.1 - - [09/May/2016 16:30:37] "GET / HTTP/1.1" 200 -
4 192.168.239.1 - - [09/May/2016 16:30:37] "GET /favicon.ico HTTP/1.1" 404 -

-f:讓 dokcer logs 像使用 tail -f 同樣來輸出容器內部的標準輸出。

從上面,咱們能夠看到應用程序使用的是 5000 端口而且可以查看到應用程序的訪問日誌。


查看WEB應用程序容器的進程

咱們還可使用 docker top 來查看容器內部運行的進程

docker top determined_swanson


檢查WEB應用程序

使用 docker inspect 來查看Docker的底層信息。它會返回一個 JSON 文件記錄着 Docker 容器的配置和狀態信息。

runoob@runoob:~$ docker inspect determined_swanson
[
    {
        "Id": "7a38a1ad55c6914b360b565819604733db751d86afd2575236a70a2519527361",
        "Created": "2016-05-09T16:20:45.427996598Z",
        "Path": "python",
        "Args": [
            "app.py"
        ],
        "State": {
            "Status": "running",
......

中止WEB應用容器

docker stop determined_swanson   
determined_swanson

重啓WEB應用容器

已經中止的容器,咱們可使用命令 docker start 來啓動。

docker start determined_swanson
determined_swanson

docker ps -l 查詢最後一次建立的容器:

正在運行的容器,咱們可使用 docker restart 命令來重啓


移除WEB應用容器

咱們可使用 docker rm 命令來刪除不須要的容器

docker rm determined_swanson  
determined_swanson

刪除容器時,容器必須是中止狀態,不然會報以下錯誤

docker rm determined_swanson
Error response from daemon: You cannot remove a running container 7a38a1ad55c6914b360b565819604733db751d86afd2575236a70a2519527361. Stop the container before attempting removal or use -f
相關文章
相關標籤/搜索