1 管理容器的生命周期
Docker 客戶端通過 docker 命令結合一組選項來創(chuàng)建和管理容器盏筐,下圖簡單描繪容器從創(chuàng)建到銷毀歷程
2 創(chuàng)建容器
docker run 命令可從鏡像創(chuàng)建新容器价卤,并在新容器內啟動進程判哥。如果容器鏡像不可用饿幅,此命令也會嘗試下載該鏡像
docker run nginx
如果想讓容器在后臺運行舷手,釋放當前shell衣盾,可以使用 -d 選項
docker run -d nginx
3 查看容器
docker ps 命令負責顯示這些屬性
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
407b444c4896 70f311871ae1 "/coredns -conf /etc…" 3 months ago Up 3 months k8s_cored
# 選項 -a 列出所有容器捅彻,包括尚未丟棄的容器
#1. 每個容器在創(chuàng)建后獲得一個容器 ID组去,它是一個十六進制數(shù)字,與鏡像 ID 相似步淹,但不相關
#2. 用于啟動容器的容器鏡像
#3. 容器啟動時所執(zhí)行的命令
#4. 容器啟動的日期和時間
#5. 容器運行時間總計(如果仍在運行)或者自終止起的時間
#6. 容器所開放的端口从隆,或者端口轉發(fā)(若已配置)
#7. 容器名稱
- 第一列是id,隨機生成且唯一
- 最后一列是名稱缭裆,可以自己指定键闺,不指定就隨機生成
指定名字運行:docker run --name my-httpd-container httpd
名稱必須唯一,重名會引發(fā)錯誤
4 在容器內運行命令
在創(chuàng)建容器時幼驶,會根據(jù)容器鏡像所指定的內容來執(zhí)行默認的命令艾杏。不過,可能需要執(zhí)行其他命令來管理運行中的容器盅藻,使用exec選項,docker exec 命令在運行中的容器內啟動額外的進程
docker exec my-httpd-container cat /etc/hostname
5 列出與運行中或已停止容器相關的元數(shù)據(jù)
docker inspect:此命令負責列出與運行中或已停止容器相關的元數(shù)據(jù)购桑。此命令生成 JSON 輸出
docker inspect my-httpd-container 輸出my-httpd-container這個容器的所有元數(shù)據(jù)
6 停止運行中的容器
docker stop:此命令負責正常停止運行中的容器
docker stop my-httpd-container
docker kill:此命令負責強制停止運行中的容器
docker kill my-httpd-container
可以通過 -s 選項來指定信號
docker kill -s SIGKILL my-httpd-container
7重啟已停止的容器
docker restart 命令利用相同的容器 ID或者NAME 創(chuàng)建一個新容器,該容器重復利用已停止容器的狀態(tài)和文件系統(tǒng)
docker restart my-httpd-container
8 刪除容器
docker rm:此命令負責刪除容器氏淑,并且丟棄其狀態(tài)和文件系統(tǒng)
docker rm my-httpd-container
同時刪除所有容器
docker rm $(docker ps -aq)
docker ps 命令具有 -q 選項勃蜘,用于僅返回容器的 ID。此列表可以傳遞到 docker rm 命令
在刪除所有容器前假残,必須停止所有運行中的容器
docker stop $(docker ps -q)
9 端口映射
容器網絡只能由容器主機訪問缭贡,外部網絡想訪問容器炉擅,可以借由主機網絡,通過地址轉換實現(xiàn)
比如我現(xiàn)在想訪問容器的80端口阳惹,通過語句可以實現(xiàn) 訪問主機ip的8080端口就會被nat到容器的80端口谍失,實現(xiàn)訪問
使用 -p 選項
docker run -d --name httpd -p 8080:80 httpd