docker01

docker入門1


 Docker overview

Docker是一個用於開發、發佈和運行應用程序的開放平臺。

Docker使您能夠將應用程序與基礎設施分離,以便能夠快速交付軟件。

使用Docker,您可以像管理應用程序一樣管理基礎設施。

通過利用Docker的方法來快速地交付、測試和部署代碼,您可以顯著地減少編寫代碼和在生產環境中運行代碼之間的延遲。

The Docker platform

Docker提供了在稱爲容器的鬆散隔離環境中打包和運行應用程序的能力。隔離和安全性允許您在給定的

主機上同時運行多個容器。

容器是輕量級的,因爲它們不需要管理程序的額外負載,而是直接在主機的內核中運行。這意味着與使

用虛擬機相比,您可以在給定的硬件組合上運行更多的容器。您甚至可以在實際上是虛擬機的主機中運

行Docker容器!

Docker提供了工具和平臺來管理你的容器的生命週期:

使用容器開發應用程序及其支持組件。

容器成爲分發和測試應用程序的單元。

準備好之後,將應用程序部署到生產環境中,作爲容器或編排的服務。無論您的生產環境是本地數據中

心、雲提供商還是兩者的混合,其工作原理都是一樣的。

 Docker Engine

Docker引擎是一個客戶端-服務器應用程序,主要組件如下:

服務器是一種長時間運行的程序,稱爲守護進程(dockerd命令)。

一個指定接口的REST API,程序可以使用這些接口與守護進程進行對話,並指示它做什麼。

命令行接口(CLI)客戶端(docker命令)。

CLI使用Docker REST API通過腳本或直接CLI命令來控制Docker守護進程或與之交互。許多其他Docker

應用程序使用底層API和CLI。

該守護進程創建並管理Docker對象,如映像、容器、網絡和卷。

What can I use Docker for?

快速、一致地交付應用程序

Docker簡化了開發生命週期,允許開發人員使用提供應用程序和服務的本地容器在標準化環境中工作。

容器對於持續集成和持續交付(CI/CD)工作流非常有用。

考慮以下示例場景:

您的開發人員在本地編寫代碼,並使用Docker容器與同事共享工作。

他們使用Docker將應用程序推入測試環境,並執行自動化和手動測試。

當開發人員發現bug時,他們可以在開發環境中修復它們,並將它們重新部署到測試環境中進行測試

和驗證。

測試完成後,修復客戶端只需將更新後的映像推入生產環境即可。

響應式部署和擴展

Docker的基於容器的平臺允許高度可移植的工作負載。Docker容器可以在開發人員的本地膝上型電

腦、數據中心的物理或虛擬機、雲提供商或混合環境中運行。

Docker的可移植性和輕量級特性也使得動態管理工作負載變得很容易,可以根據業務需求實時擴展或

分解應用程序和服務。

在相同的硬件上運行更多的工作負載

Docker是輕量級和快速的。它爲基於管理程序的虛擬機提供了一種可行的、經濟有效的替代方案,因

此您可以使用更多的計算能力來實現業務目標。Docker非常適合於高密度環境和需要使用較少資源完

成更多工作的中小型部署。

Docker architecture

Docker使用客戶機-服務器架構。

Docker客戶機與Docker守護進程進行對話,後者負責構建、運行和分發Docker容器。

Docker客戶機和守護進程可以在同一系統上運行,也可以將Docker客戶機連接到遠程Docker守護進程。

Docker客戶機和守護進程通過UNIX套接字或網絡接口使用REST API進行通信。

The Docker daemon

Docker守護進程(dockerd)偵聽Docker API請求並管理Docker對象,如圖像、容器、網絡和卷。

守護進程還可以與其他守護進程通信以管理Docker服務。


The Docker client

Docker客戶機(Docker)是許多Docker用戶與Docker交互的主要方式。

當您使用docker run之類的命令時,客戶機將這些命令發送給dockerd, dockerd執行這些命令。

docker命令使用docker API。Docker客戶機可以與多個守護進程通信。


Docker registries

Docker註冊表存儲Docker鏡像。Docker Hub是一個任何人都可以使用的公共註冊中心,Docker被配置爲

默認在Docker Hub上查找鏡像。您甚至可以運行自己的私有註冊表。如果您使用Docker數據中心

(DDC),它包括Docker可信註冊中心(DTR)。


當您使用docker pull或docker run命令時,所需的鏡像將從配置的註冊表中提取。當您使用docker 

push命令時,您的映像將被推送到您配置的註冊表。

Docker objects

當您使用Docker時,您是在創建和使用圖像、容器、網絡、卷、插件和其他對象。本節簡要概述其中一些對象。

Docker objects

IMAGES

 映像是一個只讀模板,帶有創建Docker容器的指令。

通常,一個映像是基於另一個映像的,還需要進行一些額外的定製。

例如,您可以構建一個基於ubuntu映像的映像,但是安裝Apache web服務器和您的應用程序,以及使您

的應用程序運行所需的配置細節。



您可以創建自己的圖像,也可以只使用其他人創建併發布在註冊表中的鏡像。

要構建您自己的鏡像,您需要創建一個Dockerfile,它具有簡單的語法,用於定義創建鏡像和運行鏡像

所需的步驟。

Dockerfile中的每個指令都在鏡像中創建一個層。

當您更改Dockerfile並重新構建鏡像時,只會重新構建那些已更改的層。

與其他虛擬化技術相比,這就是鏡像如此輕量級、小巧和快速的部分原因。

CONTAINERS

容器是映像的可運行實例。

您可以使用Docker API或CLI創建、啓動、停止、移動或刪除容器。

您可以將容器連接到一個或多個網絡,將存儲附加到其中,甚至根據其當前狀態創建新映像。

默認情況下,容器與其他容器及其主機是相對隔離的。您可以控制容器的網絡、存儲或其他底層子系統

與其他容器或主機的隔離程度。

容器由其映像以及在創建或啓動它時提供的任何配置選項來定義。

當容器被移除時,對其狀態的任何未存儲在持久存儲中的更改都將消失。

Read about installing Docker.

操作系統需求

要安裝Docker Engine - Community,您需要一個CentOS 7的維護版本。不支持或測試存檔版本。

必須啓用centos-extras存儲庫。默認情況下啓用此存儲庫,但如果您禁用了它,則需要重新啓用它。

建議使用overlay2存儲驅動程序。

Uninstall old versions

## docker的舊版本被稱爲Docker或Docker -engine。如果安裝了它們,請卸載它們以及相關的依賴項。

$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

Install Docker Engine - Community

你可以安裝Docker引擎-社區在不同的方式,根據您的需要:

大多數用戶設置Docker的存儲庫並從中進行安裝,以簡化安裝和升級任務。這是推薦的方法。

一些用戶下載RPM包並手動安裝它,並完全手動管理升級。

這在某些情況下非常有用,比如在沒有互聯網接入的氣隙系統上安裝Docker。

在測試和開發環境中,一些用戶選擇使用自動化的方便腳本來安裝Docker。

Install using the repository

在新主機上首次安裝Docker Engine - Community之前,需要設置Docker存儲庫。

然後,可以從存儲庫安裝和更新Docker。

SET UP THE REPOSITORY

安裝所需要的包。

utils提供了yy -config-manager實用程序,設備映射-持久數據和lvm2是設備映射器存儲驅動程序所需

要的。

$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
使用以下命令設置穩定的存儲庫。

$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

[訪問這個地址,使用自己的阿里雲賬號登錄,查看菜單欄左下角,

發現有一個鏡像加速器:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors]

  INSTALL DOCKER ENGINE - COMMUNITY

安裝最新版本的Docker Engine - Community和containerd,

或進入下一步安裝特定版本:

$ sudo yum install docker-ce docker-ce-cli containerd.io

已安裝但未啓動Docker。docker組被創建,但是沒有用戶被添加到組中。

Start Docker

$ sudo systemctl start docker

通過運行hello-world映像,驗證Docker Engine - Community是否正確安裝。

$ sudo docker run hello-world

該命令下載一個測試映像並在容器中運行它。

當容器運行時,它打印一條信息消息並退出。

 

Uninstall Docker Engine - Community

卸載Docker包

$ sudo yum remove docker-ce

圖像、容器、卷,或自定義配置文件在您的主機不會自動刪除。

您必須手動刪除任何已編輯的配置文件。

刪除所有圖像、容器和卷:

$ sudo rm -rf /var/lib/docker

 基本體驗

01 創建tomcat容器
	docker pull tomcat
	docker run -d --name my-tomcat -p 9090:8080 tomcat

02 創建mysql容器
	docker run -d --name my-mysql -p 3301:3306 -e MYSQL_ROOT_PASSWORD=jack123 --privileged mysql
	
03 進入到容器裏面
	docker exec -it containerid /bin/bash

 

參考資料:

  https://docs.docker.com/install/linux/docker-ce/centos/    

  https://docs.docker.com/get-started/

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章