Docker實踐(二):容器的管理(建立、檢視、啟動、終止、刪除)
阿新 • • 發佈:2018-12-26
docker官方文件地址如下:[https://docs.docker.com/engine/reference/](https://docs.docker.com/engine/reference/)
一、建立
docker create
:建立容器,處於停止狀態。
centos:latest
:centos容器:最新版本(也可以指定具體的版本號)。- 本地有就使用本地映象,沒有則從遠端映象庫拉取。
- 建立成功後會返回一個容器的ID。
docker run
:建立並啟動容器。
互動型容器:執行在前臺,容器中使用exit命令或者呼叫docker stop、docker kill命令,容器停止。
如下圖已經在前臺開啟一個docker容器:
- i:開啟容器的標準輸入。
- t:告訴docker為容器建立一個命令列終端。
- name:指定容器名稱,可以不填(隨機),建議根據具體使用功能命名,便於管理。
- centos:告訴我們使用什麼映象來啟動容器。
/bin/bash
:告訴docker要在容器裡面執行此命令。
後臺型容器:執行在後臺,建立後與終端無關,只有呼叫docker stop、docker kill命令才能使容器停止。
- d:使用-d引數,使容器在後臺執行。
- c: 通過-c可以調整容器的CPU優先順序。預設情況下,所有的容器擁有相同的CPU優先順序和CPU排程週期,但你可以通過Docker來通知核心給予某個或某幾個容器更多的CPU計算週期。比如,我們使用-c或者–cpu-shares =0啟動了C0、C1、C2三個容器,使用-c/–cpu-shares=512啟動了C3容器。這時,C0、C1、C2可以100%的使用CPU資源(1024),但C3只能使用50%的CPU資源(512)。如果這個主機的作業系統是時序排程型別的,每個CPU時間片是100微秒,那麼C0、C1、C2將完全使用掉這100微秒,而C3只能使用50微秒。
- -c後的命令是迴圈,從而保持容器的執行。
- docker ps:可以檢視正在執行的docker容器。
二、檢視
docker ps
: 檢視當前執行的容器docker ps -a
:檢視所有容器,包括停止的。
標題含義:
- CONTAINER ID:容器的唯一表示ID。
- IMAGE:建立容器時使用的映象。
- COMMAND:容器最後執行的命令。
- CREATED:建立容器的時間。
- STATUS:容器狀態。
- PORTS:對外開放的埠。
- NAMES:容器名。可以和容器ID一樣唯一標識容器,同一臺宿主機上不允許有同名容器存在,否則會衝突。
docker ps -l
:檢視最新建立的容器,只列出最後建立的。docker ps -n=2
:-n=x選項,會列出最後建立的x個容器。
三、啟動
通過docker start來啟動之前已經停止的docker_run映象。
- 容器名:
docker start docker_run
,或者ID:docker start 43e3fef2266c
。 - –restart(自動重啟):預設情況下容器是不重啟的,–restart標誌會檢查容器的退出碼來決定容器是否重啟容器。
docker run --restart=always --name docker_restart -d centos /bin/sh -c "while true;do echo hello world; sleep;done"
:--restart=always
:不管容器的返回碼是什麼,都會重啟容器。--restart=on-failure:5
:當容器的返回值是非0時才會重啟容器。5是可選的重啟次數。
四、終止
docker stop [NAME]/[CONTAINER ID]
:將容器退出。docker kill [NAME]/[CONTAINER ID]
:強制停止一個容器。
五、刪除
容器終止後,在需要的時候可以重新啟動,確定不需要了,可以進行刪除操作。
docker rm [NAME]/[CONTAINER ID]
:不能夠刪除一個正在執行的容器,會報錯。需要先停止容器。
一次性刪除:docker本身沒有提供一次性刪除操作,但是可以使用如下命令實現:
docker rm 'docker ps -a -q'
:-a標誌列出所有容器,-q標誌只列出容器的ID,然後傳遞給rm命令,依次刪除容器。