創建容器
語法
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用選項:
--name string
: 給啓動的容器 起一個名字,如果不使用 –name 。docker的守護進程會自動給容器命名
-d, --detach
:讓容器在後臺運行,用於運行服務
-i, --interactive
:交互式
-t, --tty
:分配一個僞終端
--rm
:容器運行介紹後自動刪除
-e, --env
:設置環境變量
-p, --publish list
:發佈容器端口到主機
-P, --publish-all
:發佈容器所有EPOSE的端口到宿主機隨機端口
-h, --hostname
:設置容器主機名
--ip string
:指定容器IP,只能用於自定義網絡
--network
:連接容器到一個網絡
--mount mount
:將文件系統附加到容器
-v, --volume list
:綁定掛載一個卷
--volumes-from
:
容器運行資源限制選項:
#內存限額
-m, --memory
:內存限額
--memory-swap
:內存+swap限額,默認爲2倍-m大小#cpu限額
-c, --cpu-share
: cpu資源提供給一組容器使用,組內的容器按比例使用cpu資源,當容器處於空閒狀態時,cpu資源被負載大的容器佔用,(按壓縮方式比例分配),當空閒進行運行起來時,cpu資源會被分配到其他容器
--cpu
: 指定 cpu的核心數量,這種方式直接限定了容器可用的cpu資源
--cpuset-cpus
: 指定容器只能運行在哪個cpu核心上(綁定cpu);核心使用0,1,2,3編號;–cpu-share
會隨機指定cpu#block IO限額
--blkio-weight
:io權重,默認500
--device-read-bps
:按每秒讀取塊設備的數據量設定上限
--device-write-bps
:按每秒寫入塊設備的數據量設定上限
--device-read-iops
:按照每秒讀操作次數設定上限
--device-write-iops
:按照每秒寫操作次數設定上限
例子
docker run --rm centos /bin/echo "hello world"
docker run -t -i --name mydocker centos /bin/bash
查看容器
-
docker ps
:查看正在運行的容器 -
docker ps -a
:查看所有狀態的容器 -
docker ps -l
:可以查看你最後一個運行的容器 -
docker ps -a -q
:查看所有容器的ID
運行容器
docker start 容器ID/名稱
:啓動一個未運行(已停止)的容器
停止容器
-
docker stop 容器ID/名稱
:發送一個命令等待容器停止: 有等待時間 -
docker kill 容器ID/名稱
: 直接停止容器:沒等待時間
這兩個的區別相當於kill和kill -9的區別
暫停/喚醒容器
暫停容器:docker pause 容器ID/名稱
喚醒容器:docker unpause 容器ID/名稱
進入容器
方法一:通過docker attach 容器名
(exit容器退出)
方法二:通過nsenter(推薦,exit容器不會關閉)
#首先要安裝util-linux
yum install util-linux
#獲取容器的pid
docker inspect -f "{{ .State.Pid }}" mydocker
#使用nsenter進入容器
nsenter -t PID -m -u -i -p -n
-t:指定PID
-m:進入Mount Namespace
-u:進入ust namespace
-i:進入IPC namespace
-p:進入到pid namespace
-n:進入到network namespace
#我們可以編輯一個腳本,直接用腳本進入
#!/bin/bash
CPID=`docker inspect -f "{{ .State.Pid }}" $CID`
nsenter -t CPID -m -u -i -p -n
方法三:通過docker exec(推薦,exit容器不會關閉)
docker exec 容器ID/名稱 命令
刪除容器
刪除容器:docker rm 容器名/ID
強制刪除:docker rm -f 容器名/ID