docker(1)命令總結
1、docker是一種輕量級虛擬機器,專業說法為應用容器(application container)
Hyper-V、KVM、Xen、esxi是基於虛擬化硬體模擬機制
docker容器使用共享的作業系統
2、docker的好處
快速的交付應用程式(快,輕)
更容易部署和擴充套件
效率高
快速部署更簡單的管理
3、docker是c/s結構。守護程序(docker daemon)作為server端,接受docker客戶端 (client)的請求,並處理(建立,執行,分發容器)
4、docker三大元件: docker倉庫 存放映象
docker映象 建立容器,只讀,不能超過127層
docker容器 可以被建立,執行,分發
5、docker的底層核心技術: namespaces 用來隔離各個容器
control groups 實現對資源的配額和度量
6、docker特性
檔案系統隔離
資源隔離
網路隔離
日誌記錄
變更管理
互動式shell
7、docker映象的命令
docker images (- -no-trunc) 顯示本機的映象
docker inspect 映象名檢視完整的docker資訊
docker search 關鍵字 搜尋合適的image(預設docker hub共有倉庫上)
docker pull 映象名下載映象
docker run –it 映象名 /bin/bash 啟動映象(-t 分配偽終端,-i 互動式,–d 守護態執行 )
docker tag imageID 新映象倉庫:tag名 修改映象標籤
docker login 進入 docker push 映象 上傳映象
docker rmi 映象 移除本地映象(需要先刪掉這個image的倉庫)
docker save –o 檔名 .tar 映象倉庫:tag 匯出映象
docker load - -input 檔名 載入映象
8、docker容器命令
docker ps (-a) 檢視容器(不加-a只檢視在up狀態的)
exit,logout,Ctrl+c 退出容器(關閉容器)
Ctrl p + Ctrl q 退出終端(容器還在執行)
docker start 將exit狀態的容器啟動
docker stop/kill 終止容器
docker restart 重啟容器
docker inspect 容器名或ID檢視容器的資訊
docker attach (--sig-proxy=false )容器ID 進入容器(允許 Ctrl +c退出)
docker exec –it 容器名/ID /bin/bash 進入容器
docker export [容器/ID] >[檔名] 匯出容器
cat 容器 | docker import - 容器名 匯入容器
docker rm 容器名/ID 刪除容器
dockerrm $(docker ps –a -q)批量刪除
9、建立映象
第一種:
先使用image啟動容器
在容器中新增應用(例如:yum–y install mysql)
exit退出
docker commit –m “提交資訊說明” –a “使用者” 建立新映象的容器的ID 新映象 倉庫:tag
第二種:
從dockerfile來建立image
10、Dockerfile分為4個部分: 基礎映象資訊,維護者資訊,映象操作指令,容器啟動時執行指令。
Dockerfile的13個基本指令
FROM(指定基礎image)
MAINTAINER(指定映象建立者的資訊)
RUN(安裝軟體用)
RUN 命令 列:RUN echo hello
RUN [“exec”,”param1”] 列:RUN [“/bin/sh“,“-c","echo hello"]
CMD(設定容器啟動是執行的操作)
CMD命令
CMD [“exec”,”param1”]
ENTRYPOINT(設定container啟動是的執行的操作)
USER(設定container的使用者)
EXPOSE(設定容器需要對映到宿主機的埠)
EXPOSE 22
docker run –p 宿主機埠:container埠 image 將container埠對映成宿主機埠
ENV(用於設定環境變數)
ENV <key> <value>
ADD(從本地複製檔案到container的路徑)
COPY(從本地複製檔案到container的路徑)
VOLUME(指定掛載點,使容器在停止的情況下檔案依然儲存在宿主機中)
VOLUME [“/tmp/data”]
可以先使用docker inspect檢視容器資訊,找到容器目錄
WORKDIR(切換目錄相當於cd)
ONBUILD(在下一個映象中執行)