Docker基本概念介紹


前言

Docker和Kubernetes是我最近在學習的內容,本來是去年的目標,由於工作比較忙,沒有時間去學習,今年剩下的半年時間我會好好系統學習下相關的內容,最后在學習下Devops相關理念,希望最終能形成自己的一套思想;

Docker系列文章:

Docker基本組成

鏡像(Image)

Docker鏡像是一個特殊的文件系統,包含了程序運行時候所需要的資源和環境。鏡像不包含任何動態數據,其內容在構建之后也不會被改變。鏡像就是模板,可以用來創建Docker容器,另外Docker提供了很簡單的機制來創建鏡像和更新現有的鏡像,用戶還可以直接從鏡像倉庫下載已經做好的鏡像來直接使用。

容器(Container)

容器就是運行鏡像的,鏡像和容器的關系,就像是面向對象程序設計中的類和實例一樣,鏡像是靜態的定義,容器是鏡像運行時的實體,容器可以被創建、啟動、停止、刪除、暫停等。每個容器都是互相隔離的,保證安全的平台,容器可以理解為簡易版的Linux環境(包括root用戶權限、鏡像空間、用戶空間和網絡空間等)和運行再其中的應用程序。

倉庫(Repository)

倉庫就是存放鏡像的地方,倉庫中又包含了多個鏡像,每個鏡像有不同的標簽,用來區分不同的鏡像版本,倉庫分為兩種,公有和私有倉庫,最大的公開倉庫是Docker Hub,存放了數量龐大的鏡像供用戶下載,這里倉庫的概念與Git類似,Registry可以理解為Github這樣的托管服務。

三者關系如下:
  1. 基於鏡像創建容器,也可以基於容器創建鏡像;
  2. 從倉庫拉取鏡像,也可以將本地鏡像推送到倉庫;

Docker如何工作

Docker是一個Client-Server結構,Docker守護進程運行在主機上,客戶端與Dcoker通過Socket訪問,守護進程接收客戶端的命令並且管理運行主機的容器,容器是一個運行環境,就是我們的集裝箱;

Docker的基本命令

基礎命令

docker info 獲取docker系統配置的信息;
docker version 獲取docker版本;
docker help 獲取docker幫助文檔;

鏡像命令

docker images 查看鏡像相關的信息:

  • -a 查看所有鏡像;
  • -q 查看容器id;

docker search 搜索容器信息

  • -filter=STARS=3000 關注度大於300以上的;

docker pull 下載鏡像,采用分層下載,采用聯合文件系統,默認是新的版本的

  • dcoker pull mysql:5.7 dcoker pull 鏡像名稱:版本號(Tag);

docker rmi 刪除鏡像

  • docker rmi -f 鏡像ID
  • docker rmi -f $(docker iamges -aq) 刪除全部的鏡像id
容器命令

docker run 是Docker中最為核心的一個命令,用於新建並啟動容器

  • -name="名稱" 容器名稱;
  • -d 使用后台交互的方式;
  • -it 使用交互方式,進入到容器內部;
  • -p 用於將容器的端口暴露給宿主機的端口,格式為:hostPort:containerPort ,通過端口的暴露,可以讓外部主機能夠訪問容器內的應用;
  • -P 隨機指定端口;
  • -c 用於給運行在容器中的所有進程分配 CPU 的 shares 值,這是一個相對權重,實際的處理速度與宿主機的 CPU 相關
  • -m 用於限制為容器中所有進程分配的內存總量,以 B、K、M、G 為單位;

docker ps 列出正在運行的容器

  • -a 列出當前正在運行的容器和歷史運行過的容器;
  • -n=? 顯示最近創建的容器;
  • -q 只顯示容器的編號;

退出容器

  • exit 容器停止並退出;
  • Ctrl + P + Q 容器停止並退出;

刪除容器

  • docker rm 容器id刪除指定的容器,不能刪除正在運行的容器;
  • docker ps -a -q | xargs docker rm 刪除所有的容器;

啟動和停止容器的操作

  • docker start 容器id 啟動容器;
  • docker restart 容器id 重啟容器;
  • docker stop 容器id 停止容器;
  • docker kill 容器ID 強殺容器;

docker logs 查看docker logs的日志

  • --details 顯示日志詳情;
  • -f 跟隨日志輸出顯示;
  • --tail 從末尾開始顯示指定行的數據;
  • -t 顯示時間戳;
  • --since 開始時間;
  • --until 結束時間;

docker top 查看容器的進程信息

docker inspect 查看鏡像的元數據

進入正在運行的容器

  • docker exec -it 容器id;
  • docker attach 容器Id;

容器拷貝文件到主機上

docker cp 容器Id 容器內路徑 主機路徑;

結束

歡迎大家點點關注,點點贊 !


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM