容器管理

  建立容器的經常使用選項php

  管理容器的經常使用命令html

一、建立容器的經常使用選項node

 

指令 描述 資源限制指令 描述
-i, --interactive 交互式 -m, --memory 容器可使用的最大內存量
-t, --tty 分配一個僞終端 --memory-swap 容許交換到磁盤的內存量
-d, --detach 運行容器到後臺 --memory-swappiness=<0-100> 容器使用SWAP分區交換的百分比( 0-100,默認爲-1)
-a, --attach list 附加到運行的容器 --memory-reservation 內存軟限制, Docker檢測主機容器爭用或內存不足時所激活的軟
限制,使用此選項,值必須設置低於—memory,以使其優先
--dns list 設置DNS服務器 --oom-kill-disable 當宿主機內存不足時,內核會殺死容器中的進程。建議設置了-
memory選項再禁用OOM。若是沒有設置,主機可能會耗盡內存
-e, --env list 設置環境變量 --cpus 限制容器可使用幾個可用的CPU資源
--env-file list 從文件讀取環境變量 --cpuset-cpus 限制容器可使用特定的CPU
-p, --publish list 發佈容器端口到主機(宿主機和容器的端口映射) --cpu-shares 此值設置爲大於或小於默認1024值,以增長或減小容器的權重,
並使其能夠訪問主機CPU週期的更大或更小比例
-P, --publish-all 發佈容器全部EXPOSE的端口到宿主機隨機端口
-h, --hostname string 設置容器主機名
--ip string 指定容器IP,只能用於自定義網絡
--link list 添加鏈接到另外一個容器
--network 鏈接容器到一個網絡
--mount mount 掛載宿主機分區到容器
-v, --volume list 掛載宿主機目錄到容器
--restart string 容器退出時重啓策略,默認no
[always|on-failure]
--add-host list 添加其餘主機到容器中/etc/hosts(容器中hosts文件中添加ip和主機的解析)



先建立容器nginx

 

[root@node02 ~]# docker container run -itd --name bs busybox
1ab0200029d705fabaa658ec98c434ea697542ad48bd7cee25d84e0c07375b8e

run 建立容器(Run a command in a new container)
bs  容器名
busybox 鏡像名
1ab0200029d705fabaa658ec98c434ea697542ad48bd7cee25d84e0c07375b8e  容器id

  

[root@node02 ~]# docker container attach bs   #進入一個容器名爲bs的容器
/ # ifconfig 
eth0      Link encap:Ethernet  HWaddr 02:42:AC:1E:27:02  
          inet addr:172.30.39.2  Bcast:172.30.39.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1450  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:648 (648.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

容器內執行exit 以前:docker

[root@node02 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1ab0200029d7 busybox "sh" 17 minutes ago Up 6 minutes bscentos

執行exit以後,咱們會發現咱們運行的進程沒了:
[root@node02 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESbash

這樣以後咱們能夠操做啓動鏡像

[root@node02 ~]# docker container start bs
bs服務器

  

[root@node02 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
1ab0200029d7        busybox             "sh"                7 minutes ago       Up 6 minutes                            bs
查看運行容器有哪些

 

 

/ # mount  
/dev/mapper/centos-root on /etc/resolv.conf type xfs (rw,relatime,attr2,inode64,noquota)
/dev/mapper/centos-root on /etc/hostname type xfs (rw,relatime,attr2,inode64,noquota)
/dev/mapper/centos-root on /etc/hosts type xfs (rw,relatime,attr2,inode64,noquota)
 容器內執行mount命令,會有不少文件掛載,咱們先看這三個,都會默認從宿主機掛載這三個文件,在容器重啓,建立操做(都會從新掛載),咱們在容器內修改這三個文件,重啓以後都不會生效的(會丟失)。

這裏我麼也能夠經過下面的方式進入容器,這樣的話,咱們執行exit 的時候他不會讓容器中止
[root@node02 ~]# docker exec  -it bs sh
/ # exit

  

[root@node02 ~]# docker container run -itd -p 8082:80 -h docker-nginx --name nginx8 --restart=always nginx:v1.7.9 
603494fada81eca4e6aa5805eca6c3c8846b58fca2f4e836b93f8f24ec05cc19

好比這個就是咱們建立一個交互式的容器,鏡像使用nginx:v1.7.9,容器名爲nginx8,建立後的容器主機名是docker-nginx,作一個端口映射,宿主機的8082映射容器的80端口,同時咱們加上--restart=always,容器退出時的重啓策略是always
--restart 標誌會檢查容器的退出代碼,並據此來決定是否要重啓容器,默認是不會重啓。
--restart的參數說明:
always:不管容器的退出代碼是什麼,Docker都會自動重啓該容器。
on-failure:只有當容器的退出代碼爲非0值的時候纔會自動重啓。另外,
該參數還接受一個可選的重啓次數參數,`--restart=on-fialure:5`表示當容器退出代碼爲非0時,Docker會嘗試自動重啓該容器,最多5次。

  

 建立容器的時候咱們應該根據咱們的業務場景來進行資源的限制網絡

 

二、管理容器的經常使用命令app

docker container ls  和  docker ps 均可以查看正在運行的容器

docker inspect container_name  查看容器的詳細信息

指令 描述
ls 列出容器
inspect 顯示一個或多個容器詳細信息
attach 附加本地標準輸入,輸出和錯誤到一個運行的容器
exec 在運行容器中執行命令
commit 建立一個新鏡像來自一個容器
cp 拷貝文件/文件夾到一個容器
logs 獲取一個容器日誌
port 列出或指定容器端口映射
stats 顯示容器資源使用統計
top 顯示一個容器運行的進程
update 更新一個或多個容器配置
stop/start 中止/啓動一個或多個容器
rm 刪除一個或多個容器


[root@node02 ~]# docker top nginx5  查看容器的運行進程
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                2323                2307                0                   11:12               pts/0               00:00:00            nginx: master process nginx -g daemon off;
101                 2353                2323                0                   11:12               pts/0               00:00:00            nginx: worker process


[root@node02 ~]# docker exec -it nginx5 bash   分配一個僞終端,執行一個bash或者sh命令
root@docker-nginx:/# 

  

[root@node02 ~]# docker container cp php-5.6.0.tar nginx7:/root
[root@node02 ~]# docker container exec nginx7 ls /root
php-5.6.0.tar

  

 博客總結來源於:http://edu.51cto.com/course/10659.html

相關文章
相關標籤/搜索