Docker-基礎002-常用命令
阿新 • • 發佈:2020-07-27
Docker命令
1. 檢視docker版本
docker version
顯示客戶端和服務端的各種版本資訊
2. 檢視docker資訊
docker info
顯示更加詳細的docker資訊, 比如容器和映象的個數, 系統核心, 網路連線, CPU等等, 可以理解為虛擬機器的系統資訊
3. 檢視幫助命令
# 檢視docker總共有那些命令即命令簡介 docker --help # 檢視具體命令的可選引數等用法 docker 命令名稱 --help
映象命令(image)
1. 檢視本地的所有映象
docker images
可選引數為:
(root@Aliyun-Alex:~)# docker images --help Usage: docker images [OPTIONS] [REPOSITORY[:TAG]] List images Options:-a, --all Show all images (default hides intermediate images) --digests Show digests -f, --filter filter Filter output based on conditions provided --format string Pretty-print images using a Go template --no-trunc Don't truncate output -q, --quiet Only show numeric IDs
2. 搜尋docker hub上的映象
docker search image_name
# 例如:
docker search mysql
使用過濾引數
如只想要stars大於3000的結果:
docker search mysql -f=stars=3000
3. 從docker hub下載映象
# 下載最新版 docker pull mysql # 下載指定版本 docker pull mysql:5.7
4. 刪除本地映象
docker rmi -f 映象名稱或者ID # 如 docker rmi mysql docker rmi -f 映象名稱或者ID 映象名稱或者ID 映象名稱或者ID # 刪除多個映象用空格隔開 docker rmi-f $(docker images -q) # 將括號中搜索到的映象全部刪除
容器命令(container)
有了映象才能建立容器, 可以理解為: 映象就是類, 容器就是類的例項物件
這裡我們先下載centos映象:docker pull centos
1. 建立容器並啟動
docker run [可選引數] image # 常用引數 --name="容器名稱" 給容器命名, 如centos01, centos02等等 -d 後臺方式執行容器 -it 使用互動方式執行, 進入容器終端 -p 指定容器的埠 -p 主機埠:容器埠 -p ip:主機埠:容器埠 -p 容器埠 容器埠 -P 隨機指定埠
測試啟動並進入centos容器
docker run -it centos
可以看到主機名稱變成了一串數字(這串數字就是容器的ID), 路徑也變成了根目錄/, 這就是進入了centos容器
但是由於centos映象只是留下了centos系統最基礎的必需資源, 所以體積小, 但是功能可能不太完善, 一些命令也沒有, 如vim, wget等
2. 退出容器
exit # 停止容器的執行
Ctrl+p+q # 不停止容器
docker attach # 容器ID, 進入執行中容器的終端
3. 檢視正在執行的容器
docker ps docker ps -a # 檢視所有容器, 包括已經停止運行了的容器
docker ps -n=? # 顯示最近的n個容器
docker ps -q # 只顯示容器編號
4. 刪除容器
docker rm -f 容器名稱或者ID # 如 docker rm mysql
docker rm -f 容器名稱或者ID 容器名稱或者ID 容器名稱或者ID # 刪除多個容器用空格隔開
docker rm -f $(docker ps -q) # 將括號中搜索到的容器全部刪除
5. 啟動和停止容器
docker start 容器id # 啟動停止的容器 docker restart 容器id # 重啟容器 docker stop 容器id # 停止正在執行的容器 docker kill 容器id # 強制殺死正在執行的容器
6. 後臺啟動容器
docker run -d 映象名
# 如 docker run -d centos
該命令會返回一個容器ID, 但是執行docker ps時發現該容器並不在執行, 而是剛啟動就停止了
原因是因為docker容器後臺執行時, 必須要有一個對應的前臺程序, 若這裡加上(-it)那麼就會啟動一個前臺程序, 若沒有前臺程序那麼docker的機制就會自動把這個容器停止, 可以理解為垃圾回收
7. 檢視日誌
docker log -tf 容器ID Usage: docker logs [OPTIONS] CONTAINER Fetch the logs of a container Options: --details Show extra details provided to logs -f, --follow Follow log output --since string Show logs since timestamp (e.g. 2013-01-02T13:23:37) or relative (e.g. 42m for 42 minutes) --tail string Number of lines to show from the end of the logs (default "all") -t, --timestamps Show timestamps --until string Show logs before a timestamp (e.g. 2013-01-02T13:23:37) or relative (e.g. 42m for 42 minutes)
8. 檢視容器中的程序資訊
docker top 容器ID
9. 檢視容器的資訊
docker inspect 容器ID
10. 進入正在執行的容器
# 方式一 docker exec -it 容器ID /bin/bash # 方式二 docker attach 容器ID
上述兩者命令的區別是:
docker exec : 進入容器後開啟一個新的終端
docker attach : 進入容器正在執行的終端, 不會開啟新的終端
11. 從容器內拷貝檔案到主機上
docker cp 容器ID:要拷貝的檔案路徑 本機目的路徑
# 如: docker cp 16bd39b136a3:root/copy_test.py /home
12. 將容器打包成新的映象
docker commit -a "作者資訊" -m "提交備註資訊" 容器ID 目標映象名:[TAG]