1、容器管理
容器是鏡像運行後的一種狀態,一個鏡像能夠建立多個容器,鏡像是不可寫的,一旦運行後成容器就變成可寫的狀態;容器也能夠導出、導入。nginx
2、容器的命令選項docker
選項 | 描述 | |
---|---|---|
-i,--interactive | 交互式 | |
-t,--tty | 分配一個僞終端 | |
-d,--detach | 運行容器到後臺 | |
-e,--env | 設置環境變量 | |
-p,--publish list | 發佈容器端口到主機 | |
-P,--publish-all | 發佈容器全部EXPOSE的端口到宿主機隨機端口 | |
--name string | 指定容器名稱 | |
-h,--hostname | 設置容器主機名 | |
--ip string | 指定容器IP,只能用於自定義網絡 | |
--network | 鏈接容器到一個網絡 | |
--mount mount | 將文件系統附加到容器 | |
-v ,--vloume list | 綁定掛載一個卷 | |
--restart string | 容器退出時重啓策略,默認no,可選值[always | on-failure] |
例:
docker run -itd -e hello=123 -e abc=123 -p 88:80 --name=nginx-v1 -h nginx-test --restart=always nginx
解析:
-itd 交互、僞終端、後臺運行
-e 環境變量
-p 宿主機的88端口映射容器的80端口
--name 定義容器名字爲nginx-v1
-h 定義容器主機名爲nginx-test
--restart=always 當容器退出時,嘗試重啓,開機啓動的意思
nginx 最後跟鏡像名稱bash
3、容器資源限制網絡
選項 | 描述 |
---|---|
-m,--memory | 容器能夠使用的最大內存量 |
--memory-swap | 容許交換到磁盤的內存量 |
--memory-swappiness=<0-100> | 容器使用SWAP分區的百分比 |
--oom-lill-disable | 禁用OOM Killer |
--cpus | 能夠使用的CPU數量 |
--cpuset-cpus | 限制容器使用特定的CPU核心,如(0-3,0,1) |
--cpu-shares | cpu共享(相對權重) |
例:
#docker run -d -m 512M nginx-v1
#docker run -d --cpus='1.5' nginx
內存限額
容許容器最多使用500M內存和100M的Swap,並禁用OOM Killer:
docker run -d --name nginx03 --nemory="500m" --memory-swap="600m" --oom-kill-disable nginx
CPU限額:
容許容器最多使用一個半CPU
docker run -d --name nginx04 --cpus="1.5" nginx
容許容器最多使用50%的CPU
docker run -d --name nginx05 --cpus="0.5" nginxapp
查看docker容器佔用宿主機資源
#docker stats nginx-v1
這樣是交互式顯示,不易來監控指標
#docker stats --help
#docker stats --no stream nginx-v1ide
4、管理容器的經常使用命令3d
選項 | 描述 |
---|---|
ls | 列出容器 |
inspect | 查看一個或多個容器詳細信息 |
exec | 在運行容器中執行命令 |
commit | 建立一個新鏡像來自一個容器 |
cp | 拷貝文件、文件夾到一個容器 |
logs | 獲取一個容器日誌 |
port | 列出或指定容器端口映射 |
top | 顯示一個容器運行的進程 |
stats | 顯示容器資源使用統計 |
stop/start/restart | 中止/啓動一個或多個容器 |
rm | 刪除一個或多個容器 |
查看容器中的目錄
#docker exec id ls
進入容器
docker exec -it id bashrest