docker學習記錄(六)--容器使用

1、創建一個後臺運行進程的容器


[dkuser@c741 ~]$ docker run -d ubuntu:15.10 /bin/sh -c "while true;do echo hello world;sleep 1;done"


93201dcb067f1c55c173366a80162fca7c7a6f472c26f186376cb080fb84dd4a


 


查看容器


[dkuser@c741 ~]$ docker ps


CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES


93201dcb067f        ubuntu:15.10        "/bin/sh -c 'while t…"   35 seconds ago      Up 34 seconds                           fervent_engelbart


 


查看日誌,最後的參數是容器的ID,也可以換成容器名 fervent_engelbart


[dkuser@c741 ~]$ docker logs 93201dcb067f


hello world


hello world


hello world


hello world


hello world


....


 


再次查看日誌會發現輸出的內容增加了,說明容器一直在運行,輸出的進程一直在執行。


 


停止容器


[dkuser@c741 ~]$ docker stop 93201dcb067f


 


2、運行一個web應用


載入鏡像


[dkuser@c741 ~]$ docker pull training/webapp


 


運行容器


[dkuser@c741 ~]$ docker run -d -P training/webapp python app.py


 


參數說明:


-d:讓容器在後臺運行


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


 


查看容器


[dkuser@c741 ~]$ docker ps


CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES


faa9d63a07b8        training/webapp     "python app.py"     5 seconds ago       Up 4 seconds        0.0.0.0:32768->5000/tcp   zealous_cohen


 


可以看到端口信息,這裏做了端口的映射,docker容器的5000端口映射到主機端口32768。


 


可以使用瀏覽器訪問WEB應用


地址:http://192.168.121.129:32768/


 


使用 -p 設置不一樣的端口 


[dkuser@c741 ~]$ docker run -d -p 5000:5000 training/webapp python app.py


 


查看新啓動的容器


[dkuser@c741 ~]$ docker ps


CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES


e6f226450c90        training/webapp     "python app.py"     5 seconds ago       Up 5 seconds        0.0.0.0:5000->5000/tcp    clever_hertz


faa9d63a07b8        training/webapp     "python app.py"     3 minutes ago       Up 3 minutes        0.0.0.0:32768->5000/tcp   zealous_cohen


 


使用瀏覽器可以通過新的端口訪問WEB應用


地址:http://192.168.121.129:5000


 


查看容器端口映射到宿主機端口的情況


[dkuser@c741 ~]$ docker port e6f226450c90


5000/tcp -> 0.0.0.0:5000


 


可以加入 -f 參數查看容器實時日誌,類似tail -f 


[dkuser@c741 ~]$ docker logs -f e6f226450c90


 


查看容器進程


[dkuser@c741 ~]$ docker top e6f226450c90


UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD


root                21127               21111               0                   11:12               ?                   00:00:00            python app.py


 


查看容器底層信息


[dkuser@c741 ~]$ docker inspect clever_hertz


[


    {


        "Id": "e6f226450c90c65f394cd0862fc058a38ec457821d189779b9ded7e9208d0a24",


        "Created": "2019-04-25T03:12:02.032267436Z",


        "Path": "python",


        "Args": [


            "app.py"


        ],


        "State": {


            "Status": "running",


            "Running": true,


            "Paused": false,


.....


 


重啓容器


對於正在啓動的容器可以使用restart重啓


[dkuser@c741 ~]$ docker restart clever_hertz


 


查詢最後一次創建的容器


[dkuser@c741 ~]$ docker ps -l


CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                        PORTS               NAMES


e6f226450c90        training/webapp     "python app.py"     6 minutes ago       Exited (137) 35 seconds ago                       clever_hertz


 


參考:


https://www.runoob.com/docker/docker-tutorial.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章