docker 增加cpu線程數

Docker命令小結

基本命令

docker run

  • docker run 容器標識 : 運行容器,該命令實際上是 docker create 和 docker start 的組合。
  • docker run 容器標識 命令 : 容器啓動時執行相應的命令。

-d

  • docker run -d 容器標識 : 以後臺守護進程形式運行容器。

-it

  • docker run -it 容器標識 : 以交互模式進入容器,並打開終端。

--name

  • docker run 容器標識 –name “my_test”: 在啓動容器時可以通過 –name 參數顯示地爲容器命名。

--restart

  • docker run -d –restart=always 容器標識 : 容器可能會因某種錯誤而停止運行。對於服務類容器,我們通常希望在這種情況下容器能夠自動重啓。–restart=always 意味着無論容器因何種原因退出(包括正常退出),就立即重啓。該參數的形式還可以是 –restart=on-failure:3,意思是如果啓動進程退出代碼非0,則重啓容器,最多重啓3次。

-m 或 --memory

  • docker run -m 200M –memory-swap=300M ubuntu : -m 或 –memory:設置內存的使用限額,例如 100M, 2G。–memory-swap:設置 內存+swap 的使用限額。

--vm

  • docker run -it -m 200M –memory-swap=300M progrium/stress –vm 1 –vm-bytes 280M : –vm 1:啓動 1 個內存工作線程。–vm-bytes 280M:每個線程分配 280M 內存。

-c 或 --cpu-shares

  • docker run –name “container_A” -c 1024 ubuntu : 通過 cpu share 可以設置容器使用 CPU 的優先級。

--cpu

  • docker run –name container_my it -c 1024 progrium/stress –cpu 1 : –cpu 用來設置工作線程的數量。當前 host 只有 1 顆 CPU,所以一個工作線程就能將 CPU 壓滿。如果 host 有多顆 CPU,則需要相應增加 –cpu 的數量。

-h

  • docker run -h myhostname -it ubuntu : 默認情況下,容器的 hostname 是它的短ID,可以通過 -h 或 –hostname 參數設置。

images

  • docker images : 已經下載到本地的所有鏡像信息。
  • docker images 容器標識 : 查看此鏡像的信息

ps

  • docker ps 或者 docker container ls 顯示容器正在運行。
  • docker ps -a : 查看所有狀態的容器。

rename

  • docker rename 舊容器名字 新容器名字 : 重命名容器。

pull

  • docker pull 容器標識: 從 Docker Hub 下載相應容器。

push

  • docker push 鏡像標識 : 將鏡像上傳到 Docker Hub。

commit

  • docker commit 鏡像標識 新的鏡像名字 : 命令將容器保存爲新的鏡像。

build

  • docker build -t 新鏡像名字 : 利用Dockerfile構建新的鏡像。
  • docker build -t 新鏡像名字:版本號 : 利用Dockerfile構建新的鏡像以及其版本號。

login

  • docker login -u 用戶名 : 在docker host登入Docker Hub。

tag

  • docker tag 舊鏡像名字 新鏡像名字 : 重新命名鏡像。

history

  • docker history 鏡像標識 : 顯示鏡像的構建歷史,也就是 Dockerfile 的執行過程。

rmi

  • docker rmi 鏡像名字[:版本] : 刪除 host 上的鏡像.

rm

  • docker rm 鏡像標識 【鏡像標識】: 刪除一個或多個容器。
  • docker rm -v $(docker ps -aq -f status=exited) : 批量刪除所有已經退出的容器。
  • docker rm -v : ocker rm 刪除容器時可以帶上 -v 參數,docker 會將容器使用到的 volume 一併刪除,但前提是沒有其他容器 mount 該 volume,目的是保護數據,非常合理。果刪除容器時沒有帶 -v 呢?這樣就會產生孤兒 volume,好在 docker 提供了 volume rm 子命令可以對 docker managed volume 進行維護。

search

  • docker search 鏡像名字 : 在命令行中就可以搜索 Docker Hub 中的鏡像。

stop

  • docker stop 容器標識 : 停止一個容器,命令本質上是向該進程發送一個 SIGTERM 信號。

kill

  • docker kill 容器標識 : 停止一個容器,命令本質上是向該進程發送一個 SIGKILL 信號。

attach

  • docker attach 容器長ID : 直接進入容器 啓動命令 的終端,不會啓動新的進程。

exec

  • docker exec -it 容器短ID bash : 在容器中打開新的終端,並且可以啓動新的bash進程。

logs

  • docker logs -f 容器短ID : 查看啓動命令的輸出, -f 的作用與 tail -f 類似,能夠持續打印輸出。

create

  • docker create 鏡像名字 : 創建的容器處於 Created 狀態。

start

  • docker start 容器標識 : 對於處於停止狀態或創建狀態的容器,可以通過 docker start 重新啓動,且會保留容器的第一次啓動時的所有參數。

restart

  • docker restart 容器標識 : 可以重啓容器,其作用就是依次執行 docker stop 和docker start。

pause

  • docker pause 容器標識 : 使容器處於暫停狀態,不會佔用 CPU 資源。

unpause

  • docker unpause 容器標識 : 處於暫停狀態的容器不會佔用 CPU 資源,直到通過 docker unpause 恢復運行。

docker-machine

  • docker-machine ls : 查看一下當前的 machine。
  •  

 

網絡配置

network ls

  • docker network ls : 在docker host 上查看創建的網絡。

network inspect bridge

  • docker docker network inspect bridge : 看一下 bridge 網絡的配置信息。

network connect 
docker network connect my_net 2b668e52480e : 爲 httpd 容器添加一塊 net_my 的網卡。

create --driver 
Docker 提供三種 user-defined 網絡驅動:bridge, overlay 和 macvlan。overlay 和 macvlan 用於創建跨主機的網絡,bridge類似於自帶的橋模式。

  • docker network create –driver bridge my_net : 通過橋驅動,創建了一個屬於自己的網絡。

--subnet 與 --gateway

  • docker network create –driver bridge –subnet 172.22.16.0/24 –gateway 172.22.16.1 my_net : 將自己創建的網絡,設置其所屬的網段、默認網關。

--ip

  • docker run -it –network=my_net2 –ip 172.22.16.8 busybox : 容器運行時從 subnet 中指定一個靜態 IP。

--network=

  • docker run -it –network=none busybox : 容器創建時,可以通過 –network=none 指定使用 none 網絡。

--network=container:[web1]

  • docker run -it –network=container:web1 busybox : joined 容器是另一種實現容器間通信的方式。joined 容器非常特別,它可以使兩個或多個容器共享一個網絡棧,共享網卡和配置信息,joined 容器之間可以通過 127.0.0.1 直接通信。請看下面的例子:先創建一個 httpd 容器,名字爲 web1。docker run -d -it –name=web1 httpd ,然後創建 busybox 容器並通過 –network=container:web1 指定 jointed 容器爲 web1。

-p

  • docker run -d -p 80 httpd : 將容器對外提供服務的端口映射到host主機上的隨機端口。
  • docker run -d -p 8080:80 httpd : 將容器的 80 端口映射到 host 的 8080 端口。

 

存儲配置

--blkio-weight 
改變容器 Block IO 的優先級,目前 Block IO 限額只對 direct IO(不使用文件緩存)有效。

  • docker run -it –name container_A –blkio-weight 600 ubuntu : 設置的是相對權重值600,默認爲 500。

bps 或 iops 
bps 是 byte per second,每秒讀寫的數據量。 iops 是 io per second,每秒 IO 的次數。 –device-read-bps,限制讀某個設備的 bps。 –device-write-bps,限制寫某個設備的 bps。 –device-read-iops,限制讀某個設備的 iops。 –device-write-iops,限制寫某個設備的 iops。 docker run -it –device-write-bps /dev/sda:30MB ubuntu : 限制容器寫 /dev/sda 的速率爲 30 MB/s。

info

  • docker info : 查看系統默認的driver。

-v

  • docker run -d -v ::<權限> httpd : 將某一個host文件mount到容器中,容器中已存在的目錄文件(container path)數據將會被隱藏,取而代之的是host path目錄下的數據。<權限>用於指定容器對於掛在數據的讀寫權限,默認權限是可讀可寫。
  • docker run -d -v <host path/file>:<container path/file>:<權限> httpd : 除了 bind mount 目錄,還可以單獨指定一個文件。使用 bind mount 單個文件的場景是:只需要向容器添加文件,不希望覆蓋整個目錄,同時也保留了容器原有的數據。
  • docker run -d -v <host path/file> httpd : 創建docker managed volume,無控制,均爲讀寫權限。創建過程:容器啓動時,簡單的告訴 docker “我需要一個 volume 存放數據,幫我 mount 到目錄 /abc”。docker 在 /var/lib/docker/volumes 中生成一個隨機目錄作爲 mount 源。如果 /abc 已經存在,則將數據複製到 mount 源。將 volume mount 到 /abc。

cp

  • docker cp hostfile 容器短ID:容器目錄的全路徑 : 可以在容器和 host 之間拷貝數據。

--volumes-from

  • docker run –name web1 -d -p 80 –volumes-from vc_data httpd : 其他容器可以通過 –volumes-from 使用 vc_data 這個 volume container。

volume ls

  • docker volume ls : 查看使用的 docker managed volume 。

volume rm

  • docker volume rm [docker managed volumeID] : 刪除容器中的docker managed volume。

volume prune

  • docker volume prune : 用這個命令刪除孤兒 volume。

該總結到44…

 

數據管理配置

 

容器監控配置

 

日誌管理配置

參考文獻:

https://clodfisher.github.io/2018/03/DockerCommand/

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章