docker容器操做

Docker容器操做
容器是鏡像的一個運行實例。所不一樣的是,鏡像是靜態的只讀文件,而容器帶有運行時須要的可寫文件層。若是認爲虛擬機是模擬運行的一整套操做系統(包括內核、應用運行態環境和其餘系統環境)和跑在上面的應用,那麼Docker容器就是獨立運行的一個(或一組)應用,以及它們必需的運行環境。web


建立容器docker

對容器進行操做就跟直接操做應用同樣簡單、快速。Docker容器實在過輕量級了,用戶能夠隨時建立或刪除容器。bash

1.新建容器tcp

可使用docker create命令新建一個容器,例如:ide

$ docker create -it 鏡像名:標籤   //基於鏡像建立容器,默認是沒有運行的spa

$ docker ps -a   //查看全部容器操作系統

使用docker create命令新建的容器處於中止狀態,可使用docker start命令來啓動它。image.png3d


2 啓動容器orm

使用docker start命令來啓動一個已經建立的容器:blog

docker start 容器ID       //開啓容器

docker stop 容器ID       //關閉容器

image.png

這裏要注意的是:docker start 後面加的是容器的ID   

啓動之後狀態變爲Up啓動狀態。


docker容器的狀態:
up   開啓狀態
Exited    終止狀態
Create    建立狀態
(Paused)   暫停狀態
狀態沒有        中止狀態

docker pause/unpause 容器ID  //暫停docker容器與取消暫停docker容器

刪除:docker rm -f  容器名(ID)

image.png

新建並啓動容器

除了建立容器後經過start命令來啓動,也能夠直接新建並啓動容器。所須要的命令主要爲docker run,等價於先執行docker create命令,再執行docker start命令。


docker run 容器名 /bin/bash -c ls /
//建立容器的同時啓動並運行相關程序,命令完成容器就中止。

image.png


啓動一個bash終端,容許用戶進行交互:

docker run -it  鏡像ID:標籤  /bin/bash

image.png

其中,-t選項讓Docker分配一個僞終端(pseudo-tty)並綁定到容器的標準輸入上,-i則讓容器的標準輸入保持打開。

更多的命令選項能夠經過man docker-run命令來查看。在交互模式下,用戶能夠經過所建立的終端來輸入命令。

守護態運行

更多的時候,須要讓Docker容器在後臺以守護態(Daemonized)形式運行。此時,能夠經過添加-d參數來實現。

下面的命令會在後臺運行容器:

docker run -d 鏡像ID  /bin/sh -c "while true; do echo hello world; sleep 1; done"

image.png

進入運行中的容器中,對容器作各類操做:
docker exec -it 容器id  /bin/bash    進入容器中
退出方法:
一、輸入exit
二、Ctrl+p, Ctrl+q鍵返回主機控制檯

image.png

鏈接到容器的會話   
docker attach 容器id號

image.png

注:鏈接的前提是你要有這個容器

//將容器導出成文件
docker export ed2e7380ef05 > httpd
將指定容器導出成名爲httpd的文件,該文件爲docker鏡像文件

image.png

//將容器文件生成鏡像
docker import  文件名  鏡像名:標籤

image.png

//刪除容器
docker rm 容器ID  指定刪除某個容器
docker rm -f 容器ID  強制刪除運行中的容器,不建議
docker container prune   刪除全部中止的容器
docker rm $(docker ps -qf status=exited)    刪除指定狀態的容器

image.png

//查看容器的詳細信息

docker inspect  容器ID      

image.png

這裏要知道的是:

假設:  你須要查看容器的IP地址或者一些其餘信息  能夠採用inspect 過濾

"NetworkSettings": {

            "Bridge": "",
            "SandboxID": "59749f7b612c0dea54dd92962ca38d0b7b822b72099c36e5403dc42b6ba4a5c5",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "80/tcp": null
            },
            "SandboxKey": "/var/run/docker/netns/59749f7b612c",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "d59586ccdb378dcca52dc0c141732e325833740cb1575aaf41efa8c0c80886d6",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.2",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:02",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "271a491425a1f921004e6de6c03d77873a8e11da916bca36a8efc21ca49eb712",
                    "EndpointID": "d59586ccdb378dcca52dc0c141732e325833740cb1575aaf41efa8c0c80886d6",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:02"
                }
            }
        }
    }
]

image.png

相關文章
相關標籤/搜索