Docker入門二

什麼是Docker

Build once,Run anywhere
Docker 使用 Google 公司推出的 Go 語言 進行開發實現,基於 Linux 內核的 cgroup,namespace,以及 AUFS 類的 Union FS 等技術,對進程進行封裝隔離,屬於 操作系統層面的虛擬化技術。由於隔離的進程獨立於宿主和其它的隔離的進程,因此也稱其爲容器。最初實現是基於 LXC,從 0.7 版本以後開始去除 LXC,轉而使用自行開發的 libcontainer,從 1.11 開始,則進一步演進爲使用 runC 和 containerd。

簡單地講,讀者可以將 Docker 容器理解爲一種輕量級的沙盒( sandbox 每個容器內
運行着 個應用,不同的容器相互隔離,容器之間也可以通過網絡互相通信 容器的創建和
停止十分快速,幾乎跟創建和終止原生應用 致;另外,容器自身對系統資源的額外需求
6 •!• 第一部分基礎入門
也十分有限,遠遠低於傳統虛擬機 很多時候,甚至直接把容器當作應用本身也沒有任何
問題

傳統虛擬機和Docker不同之處

下面的圖片比較了 Docker 和傳統虛擬化方式的不同之處。傳統虛擬機技術是虛擬出一套硬件後,在其上運行一個完整操作系統,在該系統上再運行所需應用進程;而容器內的應用進程直接運行於宿主的內核,容器內沒有自己的內核,而且也沒有進行硬件虛擬。因此容器要比傳統虛擬機更爲輕便。
在這裏插入圖片描述
在這裏插入圖片描述

核心概念

1. Docker 鏡像

Docker 鏡像類似於虛擬機鏡像,可以將它理解爲一個只讀的模板
例如,一個鏡像可以包含一個基本的操作系統環境,裏面僅安裝了 Apache 應用程序(或
用戶需要的其他軟件) 可以把它稱爲一個 Apache 鏡像
鏡像是創建 Docker 容器的基礎
通過版本管理和增量的文件系統, Docker 提供了一套十分簡單的機制來創建和更新現有
的鏡像,用戶甚至可以從網上下載一個已經做好的應用鏡像,並直接使用

2. Docker 容器

Docker 容器類似於一個輕 級的沙箱, Docker 利用容器來運行和隔離應用
容器是從鏡像創建的應用運行實例 它可以啓動、開始、停止 刪除,而這些容器都是
彼此相互隔離、互不可見的
可以把容器看作一個簡易版的 Linux 系統環境(包括 root 用戶權限、進程空間、用戶空
間和網絡空間等)以及運行在其中的應用程序打包而成的盒子

注意:鏡像自身是隻讀的 容器從鏡像啓動的時候,會在鏡像的最上層創建一個可寫層

3. Docker 倉庫

Docker 倉庫類似於代碼倉庫,是 Docker 集中存放鏡像文件的場所。

docker下載並配置加速

查看我之前的docker入門一

鏡像常用命令

1. 鏡像查看和清除

#查看鏡像
    docker images或docker image ls
#使用inspect命令查看詳細信息
    docker [image) inspect ubuntu:18.04
#使用 hi吐ory 命令查看鏡像歷史
    docker his七ory ubuntu: 18. 04
# 刪除和清理鏡像
    docker rmi 或 docker image rm
#    支持選項包括:
    D -f, -force: 強制刪除鏡像, 即使有容器依賴它;
    D -no-prune: 不要清理未帶標籤的父鏡像。
#清理鏡像
    沒有被使用的鏡像, 可以通過docker image prune命令來進行清理
    支待選項包括:
    D -a, -all: 刪除所有無用鏡像, 不光是臨時鏡像;
    D -fil七er fil七er: 只清理符合給定過濾器的鏡像;
    D -f, -force: 強制刪除鏡像, 而不進行提示確認

2. 上傳鏡像

#1. 存出鏡像
    $ docker save -o ubuntu 18 04 tar ubuntu:18 .04
#2. 載入鏡像
    $ docker load -i ubuntu_ 18 04 tar 或者
    $ docker load < ubuntu_18 04 tar
#上傳鏡像
    $ docker tag test:latest user/test : latest
    docker push user/test:latest
    The push refers to a repository [docker.io/user/test]
    Sending image list
    Please login prior to push:
    Username :
    Password:
    Email :

容器常用命令

用 docker container help 令查看 Docker 支持的容器操作子命令

在這裏插入圖片描述

操作docker容器

#1. 新建容器
    docker create -it ubuntu:latest
#2. 啓動容器
    docker start af
#2. 重啓容器
    docker restart af
 #查看窯器輸出 
     docker logs ce554267d7a4
     該命令支持的選項包括:
        口- details 打印詳細信息;
        口- f, follo :持續保持輸出;
        口一 since string :輸出從某個時間開始的日誌;
        口- tail string 輸出最近的若干日誌;
        口- t, timestamps 顯示時間戳信息
        口-until string 輸出某個時間之前的日誌
# 暫停容器
    docker pause test
# 終止窯器 
    docker stop ce5
# 清除所有處於停止狀態的容器
    docker container prune
# 進入容器
    docker exec -it 24 3c32535da7
    容器中查看容器中的用戶和進程信息 1.w 2.ps -ef
# 刪除容器
    docker [container) rm [-f][-1][-v] CONTAINER
    主要支持的選項包括
    口- f, --force=false 是否強行終止並刪除一個運行中的容器
    口- 1, --link=false :刪除容器的連接 ,但保留容器;
    口- v, --volumes=false :刪除容器掛載的數據卷 

查看容器

# 查看本機所有容器
	docker ps -a
# 查看容器詳情
    docker container inspect test
    查看某容器的具體信息,會以 json 格式返回包括容器 Id 創建時間、路徑、狀
    態、鏡像、配置等在內的各項信息
# 查看窯器內進程
    docker top test
# 查看統計信息
     docker [container] stats [OPTIONS] [CONTAINER ... ]
     子命令,會顯示 CPU 、內存、存儲、網絡等使用情況的統計信息
# 查看端口映射
    docker container port test
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章