docker容器管理和數據管理

一、概念

容器相似於一個linux環境,是經過鏡像建立啓動的,能夠理解爲在鏡像的最上一層建立一個可讀寫層,鏡像自己是隻讀的,容器的讀寫不會改變鏡像。html

二、容器管理

2.1容器的建立

#docker run -itd --name nginx1 nginx:latest
基本的建立攜帶 i t d這三個參數便可,表示的意義分別以下;
-i: 以交互模式運行容器,一般與 -t 同時使用;
-d: 後臺運行容器,並返回容器ID;
-t: 爲容器從新分配一個僞輸入終端,一般與 -i 同時使用;linux

nginx1和nginx:latest分別表示建立的容器名和所使用的鏡像,建立完成後使用 docker ps 命令便可看到新建並運行的容器
docker容器管理和數據管理nginx

#docker run -itd --name nginx2 -p 8080:80 nginx:latest
指定映射端口,將容器中的80端口映射到宿主機的8080端口上;這樣就能夠經過訪問宿主機的8080端口達到訪問容器的目的
docker容器管理和數據管理docker

#docker run -itd --name nginx3 --cpus 1 nginx:latest
限制cpu最大可用核數
docker容器管理和數據管理bash

#docker run -itd --name nginx5 --cpu-shares 512 nginx:latest
設置cpu的權重,默認值爲1024;不設置或將其設置爲0,均使用默認值;若是5個容器都是默認值1024,則平均分配
docker容器管理和數據管理ide

#docker run -itd --name nginx4 -m 100m nginx:latest
限制最大可用內存
docker容器管理和數據管理rest

#docker run -itd --name nginx6 -m 100m --oom-kill-disable nginx:latest
默認狀況下,在出現out-of-memory(OOM)錯誤時,系統會殺死容器內的進程來獲取更多的內存空間;在使用了-m限制容器內存後能夠將oom-kill禁用
docker容器管理和數據管理日誌

2.2容器的查詢

#docker ps
查詢當前運行的容器
docker容器管理和數據管理htm

#docker ps -a
這裏咱們先用docker stop nginx1關閉nginx1容器,再使用-a能夠看到全部容器信息
docker容器管理和數據管理進程

#docker ps -aq
查詢全部容器的id號
docker容器管理和數據管理

#docker log nginx2
查看容器的日誌信息
docker容器管理和數據管理

#docker inspect nginx2
用來查詢容器的詳細信息,包含cpu、內容、端口、目錄等信息

#docker top nginx2
查詢容器的進程信息
docker容器管理和數據管理

#docker port nginx2
查看容器的端口映射
docker容器管理和數據管理

#docker stats nginx2
實時查看容器的資源利用率
docker容器管理和數據管理

2.3操做容器

#docker exec -it nginx2 bash
進入容器,退出後容器仍然爲運行狀態

#docker cp /tmp/test.txt nginx2:/tmp
拷貝文件到nginx2容器的/tmp目錄下;將容器內的文件拷貝到宿主機則相反

#docker start|stop|restart nginx2
即啓動、中止、重啓容器

#docker rm nginx2
刪除重啓,在執行前須要保證容器爲中止狀態,不然rm失敗

#docker commit nginx2 nginx:v2
將容器提交成爲一個鏡像,當前容器的改動會持久化到nginx:v2鏡像中
docker容器管理和數據管理

三、數據管理

3.1 volumes方式

#docker volume create nginx-vol
建立volume,指定名稱爲nginx-vol

#docker volume ls
查詢已經建立的volume
docker容器管理和數據管理

#docker volume inspect nginx-vol
查看volume的詳細信息,能夠看到對於的掛載路徑
docker容器管理和數據管理

#docker run -itd --name nginxvol-test -p:8081:80 --mount src=nginx-vol,dst=/usr/share/nginx/html nginx:latest
使用volume建立容器,指定容器掛載目錄爲/usr/share/nginx/html
docker容器管理和數據管理
此時查看nginx-vol會發現容器中掛載目錄下的html文件;在volume下新增文件也會同步到容器中
docker容器管理和數據管理

Docker inepct命令能夠看到容器的volume信息
docker容器管理和數據管理

#docker volume rm nginx-vol
nginx-vol非使用時才能夠執行刪除操做

3.2 bind方式

#docker run -itd --name nginxBind-test -p:8082:80 --mount type=bind,src=/root/www/,dst=/usr/share/nginx/html nginx:latest
建立容器時攜帶type=bind,並指定src和dst目錄
docker容器管理和數據管理

docker insepct 命令能夠看到該容器的bind信息
docker容器管理和數據管理

相關文章
相關標籤/搜索