新版docker命令採用結構化格式,雖然老版命令依舊可以使用,但是還是推薦結構化的使用命令,更加規範有效的使用。
官方技術文檔:https://docs.docker.com/engine/reference/commandline/container_attach/
docker命令格式
docker現採用 選項 + 命令參數
選項命令比較少而且用得也不多,多的是後面的參數命令
常用的選項命令是:
$ docker -v //查看版本
管理命令
管理命令把每個命令管理的範疇規範爲一個子命令
config //管理docker配置
container //管理容器
image //管理鏡像
network //管理網絡
node //管理Swarm節點
plugin //管理插件
secret //管理docker安全
service //管理服務
swarm //管理Swarm集羣
system //管理docker系統
trust //管理鏡像信任
volume //管理卷
命令
命令:
attach //將標準輸入和標準輸出連接到正在運行的容器
build //使用dockerfile文件創建鏡像
commit //從容器的修改項中創建新的鏡像
cp //將容器的目錄或文件複製到本地文件系統中
create //創建一個新的鏡像
diff //檢查容器文件系統的修改
events //實時輸出docker服務器中發生的事件
exec //從外部運行容器內部的命令
export //將容器的文件系統到處爲tat文件包
history //顯示鏡像的歷史
images //輸出鏡像列表
import //從壓縮爲tar文件的文件系統中創建鏡像
info //顯示當前系統信息、docker容器與鏡像個數、設置信息等
inspect //使用JSON格式顯示容器與鏡像的詳細信息
kill //向容器發送kill信號關閉容器
load //從tar文件或標準輸入中加載鏡像
login //登錄docker註冊服務器
logout //退出docker註冊服務器
logs //輸出容器日誌信息
pause //暫停容器中正在運行的所有進程
port //查看容器的端口是否處於開放狀態
ps //輸出容器列表
pull //從註冊服務器中拉取一個鏡像或倉庫
push //將鏡像推送到docker註冊服務器
rename //重命名一個容器
restart //重啓一個或多個容器
rm //刪除一個或多個容器,若沒有指定標籤則刪除lastest標籤。
rmi //刪除一個或多個鏡像,若沒有指定標籤則刪除lastest標籤。
run //在一個新容器中中運行命令,用於指定鏡像創建容器。
save //將一個或多個鏡像保存爲tar包
search //從Docker Hub中搜索鏡像
start //啓動一個或多個已經停止的容器
stats //查看容器使用量
stop //停止一個或多個正在運行的容器
tag //設置鏡像標籤
top //顯示容器中正在運行的進程信息
unpause //重啓pause命令暫停的容器
update //更新一個或多個容器的配置
version //顯示docker版本信息
wait //等待容器終止然後輸出退出碼
鏡像管理命令
build //構建鏡像
history //鏡像歷史
import //將容器打包
inspect //顯示容器詳細
load //加載鏡像
ls //查看當前鏡像
prune //移除未使用鏡像
pull //拉去鏡像
push //上傳鏡像
rm //刪除鏡像
save //保存鏡像
tag //標記
管理鏡像常用命令
$ docker image ls //列出所有鏡像
$ docker image build //構建鏡像來自Dockerfile
$ docker image history //查看鏡像歷史
$ docker image inspect //顯示一個或多個鏡像詳細信息
$ docker image pull //從鏡像倉庫拉去鏡像
$ docker image push //推送一個鏡像到鏡像倉庫
$ docker image rm //移除一個或多個鏡像
$ docker image prune //移除未使用,未標記的鏡像
$ docker image tag //創建一個引用源鏡像標記的目標鏡像
$ docker image save //保存一個或多個鏡像到tar歸檔文件
$ docker image load //加載鏡像
創建容器常用命令
-i(–interactive ) //交互式
-t(-ttl) //分配一個僞終端
-d(-detach) //後臺運行容器
-e(-env) //設置環境變量
-p(-publish list) //發佈容器端口到主機
-P(-publish-all) //發佈容器所有EXPOSE的端口到宿主機隨機端口
--name //指定容器名
-h(-hostname) //指定容器的主機名
--ip string //指定容器IP,只能用於自定義網絡
--network //連接容器到一個網絡
--mount mount //將文件系統符加到容器
-v(-volume list) //綁定掛載一個卷
--restart string //容器退出時重啓策略,默認no
容器資源限制命令
-m(memory) //容器可以使用的最大內存量
--memory-swap //允許交換到磁盤的內存量;-1表示不限制使用,如果跟內存一樣大小表示不設置swap,docker默認交換區與內存相同,如果swap比內存大,及 (swap-m)= swap可以使用的swap大小
--memory-swappines=<0-100> //容器使用SWAP分區交換的百分比
-oom-kill-disable //禁用OOM Killer,如果服務過多,會自動kill掉服務,開啓此服務不會存自動kill
--cpus //可以使用的CPU數量
-cpuset-cpus //限制容器使用特定的CPU核心,如(0-3,0,1)
-cpu-shares //CPU共享(相對權重)
實例
內存限額:
允許容器最多使用500M內存和100M的Swap,並禁用 OOM Killer:
$ docker container run -d --name nginx01 --memory="500m" --memory-swap="600m" --oom-kill-disable nginx
CPU限額:
允許容器最多使用一個半的CPU:
$ docker container run -d --name nginx04 --cpus="1.5" nginx
允許容器最多使用50%的CPU:
$ docker container run -d --name nginx05 --cpus=".5" nginx
創建一個nginx並轉發到宿主機8080端口
$ docker container run -itd --name web_01 -e te
st=123456 -p 8080:80 nginx
按照新docker命令規範化可以極大提升效率