生態圈有:1、Docker Hub,是預先寫好的Dockerfile官方資源,提供公共的和私人的鏡像儲存庫;2、Docker Engine,用於運行和管理容器的核心軟體;3 、Kitematic,是一個視覺化管理工具;4、Machine和Swarm,為各種虛擬化和雲端服務供應商提供了一套簡單的工具集用以移動和縮放它們的本地專案;5、Compose;6、Cloud ;7、Center。
本教學操作環境:linux5.9.8系統、docker-1.13.1版、Dell G3電腦。
Docker是一個用來建立「容器」的工具,這些容器只是包含你所需要的一個獨立的應用或技術堆疊。與虛擬機器不同的是,這些容器共享相同的資源來管理容器與主機之間的相互作用。這一點使得Docker容器快速、輕量、安全且共用。
目前可用的Docker生態系統存在部分,包括:Docker Hub、Docker Engine、Kitematic、Docker Machine、Swarm、Docker Compose、Dokcer Cloud以及Data Center,以下會詳細介紹這些工具的功能,以及怎樣能夠更好地將這些工具結合起來。
Docker Hub
任何使用Docker的專案的核心都是一個
Dockerfile 檔案。這個檔案包含Docker如何建立一個映像的指示說明。讓我們來看一個簡單的例子:
FROM python:2.7 ADD . /code WORKDIR /code RUN pip install -r requirements.txt
在這個範例中,該Dockerfile檔案拉取一個特定版本的現有映像,將目前本機目錄複製進容器的檔案系統,並設定它為工作目錄,然後透過pip指令從一個文字檔下載Python相依性。
Docker Hub 是預先寫好的Dockerfile官方資源,提供公共的(免費的)和私人的(付費的)映像存儲庫。如果你正在尋找一個Dockerfile來滿足你的需求,首先在Docker Hub上搜索,使用專案文件、下載量和鏡像等級來幫助指導你的決定。
Docker Engine(引擎)
Docker Engine(引擎)是用來運作和管理容器的核心軟體。通常人們會簡單地將其代指為 Docker 或 Docker 平台。 Docker 引擎由許多專用的工具協同工作,因此可以建立和運行容器,例如 API、執行驅動、執行時間、shim 進程等。
Docker Engine建立Dockerfile檔案並將它們轉換為可用的容器。 Docker Engine是Docker的核心,如果沒有Docker Engine那麼就什麼也運作不了。依據你的作業系統不同有幾種下載Docker Engine的方案,你可以 在這裡發現更多的細節 。
依據Docker Hub中的一個映像開啟一個容器,應該先拉取這個映像並運行它。繼續以Python為例:
docker pull python docker run -it --rm --name script-name -v "$PWD":/usr/src/appname -w /usr/src/appname python:3 python app.py
這樣就會拉取最新的Python鏡像然後開啟一個容器運行一個Python腳本並且運行完後退出容器。 run指令提供了更多的選項設置,你可以 在這裡閱讀完整的指南 。
當一個Docker run指令開始變得更為複雜,它可以創建自己的自訂Dockerfile檔案或許是一個更好的主意。開啟一個基於本機Dockerfile檔案的容器,執行下列內麵包含檔案的目錄:
docker build -t my_image .
這個指令將會建立一個名為my_image的映像。執行以下命令開啟一個基於這個鏡像的容器:
docker run -name my_image_container -i -t my_image
這個指令會開啟一個基於自訂的my_image映像的容器,這個容器命名為my_image_container。
Kitematic(Docker視覺化管理工具)
对于那些宁愿避免命令行的用户来说, Kitematic 是一个 Docker GUI 工具,它可以更快速、更简单的运行Docker容器,现在已经支持 Mac /Windows/Linux。
搜索你需要的镜像,创建一个容器,你最好去Kitematic。Kitematic提供了基本的配置选项,但对于更高级的设置,你可能需要进入命令行。
你的容器出现在左手边,在那里它们可以被启动、停止、重启,更有用的是,你可以在那里找到容器日志和直接SSH(exec按键)访问。
Docker Machine和Swarm
生产中使用Docker的第一步是了解
Machine 和Swarm,它们为各种虚拟化和云服务提供商提供了一套简单的工具集用以移动和缩放他们的本地项目。
“生产中使用Docker的第一步是了解Machine和Swarm。”
例如,在Azure上创建一个Docker实例:
docker-machine create -d azure --azure-subscription-id="XXX" --azure-subscription-cert="/mycert.pem" ecodemo
这个命令使用预装的Docker创建一个Ubuntu 12.04-based虚拟机并命名为ecodemo。每个供应商都需要不同的参数和认证方法,这些默认设置可以被重写。在 这个文档 中可以阅读到更多的细节。
当与
Swarm 结合后,Machine可以创建Docker实例的集群,这个集群被视为一个单一的、大的Docker实例。每一个Swarm集群都需要一个master实例,这个master实例可以用下面的命令来创建:
docker-machine create -d virtualbox --swarm --swarm-master --swarm-discovery token://TOKEN_ID swarm-master
这样就会在VirtualBox中创建一个Docker实例并且设置这个Docker实例为Swarm集群的一个master节点。TOKEN_ID非常重要,因为它可以帮助集群中的所有节点识别彼此。除了手动创建TOKEN_ID标识以外,Swarm也有 发现系统 来帮助你管理这个过程。
下面的命令使用相同的TOKEN_ID标识添加Docker实例到Swarm集群:
docker-machine create -d virtualbox --swarm --swarm-discovery token://TOKEN_ID swarm-node-n
swarm-node-n对于集群中的每一个节点来说都是一个唯一的名字。
现在,代替从单个虚拟机中开启容器,你可以在集群中开启容器,master节点将会把这个容器分配给最可用的和最有能力的节点。
Docker Compose
Compose 使得由多个组件(像容器)组成的应用程序更加简单,你可以开始使用一个命令在一个单一的配置文件中声明所有这些组件。
下面是一个Compose文件(称为docker-compose.yml)的例子,这个例子创建三个
Crate 数据库实例和一个
Laravel (用一些额外的配置)PHP框架实例。最重要的是,容器与Links配置选项相连。
crate1: image: crate ports: - "4200:4200" - "4300:4300" crate2: image: crate crate3: image: crate volumes: - ./data:/importdata laravelcomposer: image: dylanlindgren/docker-laravel-composer volumes: - /laravel-application:/var/www command: --working-dir=/var/www install links: - crate1 laravelartisan: image: dylanlindgren/docker-laravel-artisan links: - crate1 volumes_from: - laravelcomposer working_dir: /var/www command: serve --host=0.0.0.0:8080 ports: - "8000:8000" - "8080:8080"
所有这些实例和它们的配置现在可以通过运行以下在同一目录中的docker-compose.yml文件的命令来开始:
docker-compose up
你可以使用相同的子命令作为Docker的命令来影响所有以docker-compose开始的容器。例如,docker-compose stop命令可以停止以docker-compose开始的容器。
Docker Cloud
容器的自动化管理和编排是Docker的主要功能,但却一直由第三方服务来提供,直到去年Docker获得了
Tutum(它支撑着Docker云) 。虽然没有完整的命令行工具(还没有),Docker云服务允许Docker Compose文件设置应用程序栈,所以它不是来自于生态型的其它部分的一个大的导流。
“容器的自动化管理是Docker的重要组成,但知道最近一直由第三方来提供。”
例如:
crate1: image: crate ports: - "4200:4200" - "4300:4300" command: crate -Des.network.publish_host=_ethwe:ipv4_ crate2: image: crate command: crate -Des.network.publish_host=_ethwe:ipv4_ crate3: image: crate command: crate -Des.network.publish_host=_ethwe:ipv4_
这样就创建了同一个镜像的三个实例,其中一个手动设置主机与Docker之间的端口分配,其他的端口分配是自动的。我将很快重新访问command。
如果你想在超过一个节点(节点能够运行它可以管理的足够多的容器和一个私有仓库上扩展应用程序,Docker Cloud是有偿服务。这对于实验目的来说足够了。记住,Docker Cloud默认管理托管在第三方托管服务器上的容器,所以你也需要支付费用。使得Docker Cloud代理运行在任何你管理的Linux主机上是可能的,你可以 在这里找到操作指南 。
上面的截图显示了三个使用预先设定的规则运行在跨越两个数字海洋的实例上的Docker容器,这个预先设定的规则是根据你设置的参数来将容器分配给主机。它会自动确保你指定数量的容器始终在运行。
在之前的Docker Compose例子中,你可能已经注意到_ethwe:ipv4_。这是Docker Cloud的另外一个重要特征。许多分布式应用和服务依赖“ 服务发现 ”来找到同一服务的其他实例并进行通信。当在数据中心和物理机器上传播服务时,这往往需要实例的手动说明或者需要另一种方式来找到彼此。
Docker Cloud包括支持
Weave 在你的实际网络中创建一个“软”网络;所有的容器和应用都可以发现彼此,无论它们被托管在哪里。在上面的例子中,我们重写了向容器发出的默认命令,以确保它接收它需要使用此功能的信息。
Data Center
到目前为止,本文涉及的大部分工具都是你安装,主机,和支持的工具。对企业用户来说,他们寻找安全性、性能和支持较高的保证,Docker提供了 数据中心 。
它使用了覆盖这里的许多相同的工具包,但是增加了一个放置你的镜像的私有仓库,一个私有云,高级支持,和供应商可能吸引企业用户的第三方集成。这些包括LDAP and Active Directory用户管理,容器检测,和日志记录。
推荐学习:《docker视频教程》
以上是docker生態圈有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

要獲取 Docker 版本,您可以執行以下步驟:運行 Docker 命令“docker --version”來查看客戶端和服務器版本。對於 Mac 或 Windows,還可以通過 Docker Desktop GUI 的“版本”選項卡或“關於 Docker Desktop”菜單查看版本信息。

Docker 進程查看方法:1. Docker CLI 命令:docker ps;2. Systemd CLI 命令:systemctl status docker;3. Docker Compose CLI 命令:docker-compose ps;4. Process Explorer(Windows);5. /proc 目錄(Linux)。

如何使用 Docker Desktop? Docker Desktop 是一款工具,用於在本地機器上運行 Docker 容器。其使用步驟包括:1. 安裝 Docker Desktop;2. 啟動 Docker Desktop;3. 創建 Docker 鏡像(使用 Dockerfile);4. 構建 Docker 鏡像(使用 docker build);5. 運行 Docker 容器(使用 docker run)。

要查看 Docker 鏡像版本,請執行以下操作:列出鏡像版本:運行 docker image list 命令。查看特定鏡像詳細信息:使用 docker image inspect 命令並查找 RepoDigests 字段。查找版本字段:鏡像版本是 RepoDigests 哈希值末尾的字符串。

Docker和Jenkins整合指南可實現自動化持續集成和持續交付(CI/CD)。配置步驟包括:安裝Docker和Jenkins,創建Jenkins管道,集成Docker,連接Jenkins和Docker。通過遵循這些步驟,可建立自動化CI/CD流程,縮短交付時間並提高軟件質量。

離線安裝 Docker 鏡像需要以下步驟:1. 獲取鏡像 TAR 文件;2. 導出鏡像文件;3. 傳輸鏡像文件;4. 導入鏡像文件;5. 驗證鏡像安裝。

要運行 Docker 鏡像,需要執行以下步驟:拉取鏡像:使用 docker pull 命令拉取所需的鏡像。創建容器:使用 docker run 命令創建容器,指定名稱和端口映射。啟動容器:使用 docker start 命令啟動容器。觀察日誌:使用 docker logs 命令查看容器日誌。停止容器:使用 docker stop 命令停止容器。終止容器:使用 docker rm 命令終止容器並刪除數據。

可切換到國內鏡像源,步驟如下:1. 編輯配置文件 /etc/docker/daemon.json,添加鏡像源地址;2. 保存退出後,重啟 Docker 服務 sudo systemctl restart docker,即可提升鏡像下載速度和穩定性。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Dreamweaver Mac版
視覺化網頁開發工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。