一、Image鏡像
Docker把應用程式及其依賴,打包在image檔案裡面。隻有通過這個檔案,才能生成Docker容器。image檔案可以看作是容器的模闆。Docker根據image檔案生成容器的執行個體。同一個image檔案,可以生成多個同時運作的容器執行個體。注意image檔案是隻讀的
二、Image的擷取
- 第一種方式:Build from Dockerfile
- 第二種方式:Pull from Registry
三、Image基本指令
docker image ls
-> 檢視目前docker service中的所有image
docker history [IMAGE ID]
-> 檢視該image的分層
docker run [IMAGE NAME | IMAGE ID]
-> 建立新的容器并運作command,這個command是image中的CMD指令
注意:
docker run ubuntu
會預設運作latest版本,
docker run ubuntu:14.04
會運作指定版本
四、Container容器
- container是通過image建立的
- 在image layer(隻讀)之上建立了一個container layer(可讀、可寫)
Docker(四)Image、Container - image負責App的儲存和分發,container負責運作App
五、Container基本指令
docker container ls
-> 列出目前正在運作的container
docker container ls -a
-> 列出所有狀态的container(包括正在運作的、已經退出的)
注意:使用
docker run [IMAGE NAME]
指令運作容器,容器執行完command後會直接退出。
互動式運作容器的指令:
docker run -it [IMAGE NAME]
例如:
可以看到進入到了作業系統裡面了,也就是說現在産生了一個up狀态的container。
docker container stop [CONTAINER ID]
-> 退出容器
docker container rm [CONTAINER ID]
-> 移除容器
docker rm [CONTAINER ID]
-> 移除容器(簡化指令),效果同上
docker container ls -aq
-> 列出所有containerId
docker rm $(docker container ls -aq)
-> 批量移除container
docker rm $(docker container ls -f 'status=exited' -aq)
-> 按過濾條件’status=exited’,批量删除container
六、建構自己的鏡像
場景:centos鏡像中沒有安裝vim,現在需要制作一個基于centos鏡像并安裝好vim的鏡像。
- first,建立一個Dockerfile檔案,裡面的内容如下:
# 表示base image為centos,如果沒有base image那麼需寫成FROM scratch
FROM centos
RUN yum install -y vim
- second,利用build指令建構鏡像:
docker build -t cherry-peng/centos-vim-new .
-t
後面參數表示鏡像的名稱和tag,tag不寫預設latest
.
為Dockerfile檔案的
PATH
參數,即表示目前目錄下的Dockerfile。