建立容器的經常使用選項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