1. 程式人生 > >docker學習埠對映---第二章節

docker學習埠對映---第二章節

一.執行一個web應用

首先,下載一個docker映象:

[[email protected] ~]# docker pull training/webapp

執行webapp的容器:

[[email protected] ~]# docker run -d -P training/webapp python app.py 
cb2ea5793288ada7c8be553befab76d7516e4a65999680aefeb531d000888634

引數說明:

  • -d:讓容器在後臺執行
  • -P:將容器內部使用的網路埠對映到我們使用的主機上

二.檢視WEB應用容器

docker ps -l顯示最新建立的容器
檢視我們正在執行的webapp容器:

[[email protected] ~]# docker ps -l
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
cb2ea5793288        training/webapp     "python app.py"     54 seconds ago      Up 54 seconds       0.0.0.0:32768->5000/tcp   laughing_engelbart

可以發現,多了埠資訊。docker開放的5000埠對映到主機埠32768上。可以通過瀏覽器訪問WEB應用:

這裡我們還可以通過-p引數來設定不一樣的埠:

[[email protected] ~]# docker run -d -p 5000:5000 training/webapp python app.py 
c5acdbc01395c4d4d38438bc8351fd0820d2ac60c6c8e4924c28f600d0f83c78

檢視執行的容器:

[[email protected] ~]# docker ps -l
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
c5acdbc01395        training/webapp     "python app.py"     52 seconds ago      Up 51 seconds       0.0.0.0:5000->5000/tcp   pensive_mestorf

可以看出容器內部的5000埠對映到我們本地主機的5000埠上。

三.檢視網路埠的快捷方式

我們可以通過docker ps命令檢視容器的埠對映。docker還提供了另一個快捷方式docker port,使用docker port可以檢視指定(容器ID或者名稱)容器的某個確定埠對映到宿主機的埠號

[[email protected] ~]# docker port c5acdbc01395 && docker port pensive_mestorf
5000/tcp -> 0.0.0.0:5000
5000/tcp -> 0.0.0.0:5000

四.檢視docker容器應用程式日誌輸出

[[email protected] ~]# docker logs -f c5acdbc01395 
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

這裡可以像使用tail -f一樣來輸出容器內部的標準輸出

五.檢視WEB應用程式容器的程序

我們可以通過docker top來檢視容器內部執行的程序

[[email protected] ~]# docker top c5acdbc01395 
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                2358409             2358392             0                   04:10               ?                   00:00:00            python app.py

六.檢查WEB應用容器的配置和狀態資訊

可以使用docker inspect來檢視docker的底層資訊,它會返回一個Json檔案記錄著docker容器的配置和狀態資訊

[[email protected] ~]# docker inspect c5acdbc01395 
[
    {
        "Id": "c5acdbc01395c4d4d38438bc8351fd0820d2ac60c6c8e4924c28f600d0f83c78",
        "Created": "2018-12-20T09:10:33.039244936Z",
        "Path": "python",
        "Args": [
            "app.py"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 2358409,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2018-12-20T09:10:33.400703462Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
.........

七.刪除web應用容器

使用docker rm命令刪除容器
刪除前,需要停止容器,否則會報錯

[[email protected] ~]# docker stop c5acdbc01395 
c5acdbc01395

刪除容器

[[email protected] ~]# docker rm c5acdbc01395 
c5acdbc01395

參考連結:http://www.runoob.com/docker/docker-container-usage.html