【Docker 學習筆記】基本原理和基本操作
阿新 • • 發佈:2020-12-24
注:所有實驗均來自【Educoder平臺】
Docker學習基本原理和操作
啟動服務:service docker start
拉取映象
docker pull isoname:latest
docker run --name first_docker_container isoname:latest echo "Hello"
- 檢視容器資訊
docker ps [-a檢視所有容器]
- 停止一個容器
docker stop [option] Container [Container ...]
- 容器在後臺執行並且不會將輸出結果輸出到控制檯
run [-d ]
進入docker的幾種方法
- ssh登陸
- nsenter、nsinit第三方工具
- docker本身的工具
docker attach containerId|containerName
1. Id不用輸全,只需要標全即可
2. 命令實際上進入容器“啟動命令”的終端
docker exec [options] containerName|containerId command [arg]
例子:
docker exec id mkdir dir
docker exec -it id /bin/bash
1. -it為其分配了一個偽終端繫結到標準輸出上
兩種方式的比較:
1. attach直接進入容器的啟動命令的終端,不會啟動新的程序
2. exec會建立新的終端同時可以啟動新的程序
使用場景:直接在終端中檢視容器的啟動命令的輸出,使用attach;其他都是用exec
刪除容器
docker rm containName|containId # 刪除處於終止狀態的容器,沒有引數的情況下,只能刪除處於終止狀態的容器
# 刪除正在執行的容器:
# way 1. 停止後刪除
docker stop dockerId|dockerName
docker rm dockerId|dockerName
docker rm $(docker ps -a -q) # 刪除所有停止狀態的容器
# way 2. 強制刪除
docker rm -f
定製容器
你需要知道:你是無法直接檢視一個容器的內容,因為映象是隻讀的,也無法做出任何修改。
# 例項:修改nginx的歡迎介面
docker run --name webserver -d -p 80:80 nginx
docker exec -it webserver /bin/bash # 進入
echo '<h1>Hello Docer!</h1>' > /usr/share/nginx/html/index.html
儲存為映象:在原有的映象的基礎上,再疊加上容器的儲存層(儲存層僅僅儲存了容器所做出的修改),將這些內容構成一個新的映象
docker commit [options:--author作者;--message:指定提交的資訊] CONTAINERNAME [isoname新映象的名字]
docker commit webserver nginx:v1
儲存和載入映象
一個或者多個映象儲存至tar檔案:docker save [OPTIONS] IMAGE [IMAGE...]
# 例項
docker save alpine:latest > alpine.tar
# 另一種寫法
docker save -o alpine:latest alpine.tar
# 多個 -> 一個
docker save alpine:latest ubuntu:latest > image.tar
load載入save儲存的tar檔案
docker load < alpine.tar
# 或者
docker load -i alpine.tar
綜合案例:將一個映象從一個機器上打包後傳送到另一個機器上並解包
docker save [isoname] | bzip2 | pv | ssh [email protected] 'cat | docker load'
匯入匯出容器
容器檔案系統 >> tar包:docker export [options] containername
# 例項
docker export container1 > container1.tar
# 或者
docker export container1 -o container1.tar
從tar匯入一個映象:docker import [options]file/url - isoname
# 例項
docker cat container1.tar | docker import - test:v1.0
關於docker export 和 docker save
- docker save將一個映象儲存為一個tar包
- docker export將一個容器快照儲存為一個tar包
docker export 匯出的容器快照檔案將丟棄所有的歷史記錄和元資料資訊,只儲存容器當前的快照狀態;而另一個將儲存所有內容
刪除映象
docker rmi [options] image [image ...]
docker images --digests
檢視映象的具體資訊1
docker images -q reponame
輸出所有倉庫名的映象id
# 刪除所有映象
docker rmi $(docker images -q reponames)
docker rmi $(docker images -qa)
【注意:刪除映象前,需要先將使用該映象的容器刪除】
建立私人倉庫
詳細配置參考