国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

做的網站侵犯美的商標賠償多少錢廣州網絡推廣公司

做的網站侵犯美的商標賠償多少錢,廣州網絡推廣公司,電子商務網站的規(guī)劃與建設論文,后端開發(fā)工程師目錄 Docker Compose Compose的優(yōu)點 編排和部署 Compose原理 Compose應用案例 安裝docker-ce 阿里云鏡像加速器 安裝docker-compose docker-compose用法 Yaml簡介 驗證LNMP環(huán)境 Docker Compose Docker Compose 的前身是 Fig,它是一個定義及運行多個 Dock…

目錄

Docker Compose

Compose的優(yōu)點

編排和部署

Compose原理

Compose應用案例

安裝docker-ce

阿里云鏡像加速器

安裝docker-compose

docker-compose用法

Yaml簡介

驗證LNMP環(huán)境?


Docker Compose

????????Docker Compose 的前身是 Fig,它是一個定義及運行多個 Docker 容器的工具。可以使用YAML文件來配置應用程序的服務。然后,使用單個命令,您可以創(chuàng)建并啟動配置中的所有服務。Docker Compose 會通過解析容器間的依賴關系(link, 網絡容器 -net-from 或數(shù)據容器 -volume-from)按先后順序啟動所定義的容器。

????????Compose 是 Docker 的服務編排工具,主要用來構建基于 Docker 的復雜應用,Compose 通過一個配置文件來管理多個 Docker 容器,非常適合組合使用多個容器進行開發(fā)的場景。

Compose適用于所有環(huán)境:生產,開發(fā),測試以及CI工作流程。使用Compose基本上是一個三步過程:

  1. 使用Dockerfile定義應用程序的環(huán)境,以便在任何地方進行復制。
  2. 在docker-compose.yml中定義組成應用程序的服務,以便它們可以在隔離的環(huán)境中一起運行。
  3. 運行docker-compose開始并運行整個應用程序。

docker-compose官方文檔:Docker Compose overview | Docker Documentation

?

????????docker-compose 是用來做docker 的多容器控制,有了 docker-compose 你可以把所有繁復的 docker 操作全都用一條命令自動化完成。從上圖可以看到,這位compose非常開心的把N多個容器抓在一起,根據自己的心情來編排部署。

????????Docker對于運維或開發(fā)者來說,Docker最大的優(yōu)點在于它提供了一種全新的發(fā)布機制。這種發(fā)布機制,指的是我們使用Docker鏡像作為統(tǒng)一的軟件制品載體,使用Docker容器提供獨立的軟件運行上下文環(huán)境,使用Docker Hub提供鏡像統(tǒng)一協(xié)作,最重要的是該機制使用Dockerfile定義容器內部行為和容器關鍵屬性來支撐軟件運行。

????????Dockerfile作為整個機制的核心。在Dockerfile中不但能夠定義使用者在容器中需要進行的操作,而且能夠定義容器中運行軟件需要的配置,于是軟件開發(fā)和運維終于能夠在一個配置文件上達成統(tǒng)一。運維人員使用同一個Dockerfile能在不同的場合下“重現(xiàn)”與開發(fā)者環(huán)境中一模一樣的運行單元(Docker容器)出來。

Compose的優(yōu)點

先來了解一下我們平時是怎么樣使用docker的?把它進行拆分一下:

1、docker search 鏡像,是不是先查找一個鏡像;

2、docker run -itd 鏡像名稱 ,然后在運行這個鏡像;

3、然后如果你要在運行第二個鏡像、第三個鏡像.....等等,你是不是又要docker search、docker run運行。

????????上面“ docker run -itd 鏡像名稱?”這只是最小的動作,如果你要映射硬盤,設置nat網絡或者映射端口等等。就要做更多的 docker 操作,這顯然是非常沒有效率的,況且如果你要大規(guī)模部署,是不是覺得就很麻煩了。

但是我們寫在docker-compose里面就很好了。你只需要寫好后只運行一句:

docker-compose up -d

編排和部署

????????編排,即orchestration,它根據被部署的對象之間的耦合關系,以及被部署對象環(huán)境的依賴,制定部署流程中各個動作的執(zhí)行順序,部署過程所需要的依賴文件的存儲位置和獲取方式,以及如何驗證部署成功。這些信息都會在編排工具中以指定的格式(比如配置文件或者特定的代碼)來要求運維人員定義并保存起來,從而保證這個流程能夠隨時在全新的環(huán)境中可靠有序地重現(xiàn)出來。

????????部署,即deployment,它是指按照編排所指定的內容和流程 ,在目標機器上執(zhí)行編排指定環(huán)境初始化,存放指定的依賴和文件,運行指定的部署動作,最終按照編排中的規(guī)則來確認聯(lián)署成功。

????????這么來解釋吧,編排是一個指揮家,他的大腦里存儲了整個樂曲的演奏流程,對于每一個小節(jié)每一段音樂的演奏方式、開始、結束他都了然于胸;部署就是整個樂隊,他們嚴格按照指揮家的意圖用樂器來完成樂譜的執(zhí)行,在需要時開始演奏,又在適當?shù)臅r機停止演奏。最終,兩者通過協(xié)作就能把每一位演奏者獨立的演奏通過組合、重疊、銜接來形成高品位的交響樂。

Compose原理

docker-compose的調用過程扁平的像一張紙,僅用一張簡單的模塊圖就足夠解釋明白,如下圖所示:

?

????????首先,用戶執(zhí)行的docker-compose up -d指令調用了命令行中的啟動方法。功能很簡單明了,一個docker-compose.yml定義了一個docker-compose的project,docker-compose操作提供的命令行參數(shù)則作為這個project的啟動參數(shù)交由project模塊去處理。

????????其次,如果當前宿主機已經存在與該應用對應的容器,docker-compose將進行行為邏輯判斷。如果用戶指定可以重新啟動已有服務,docker-compose就會執(zhí)行service模塊的容器重啟方法,否則就將直接啟動已有容器。這兩種操作的區(qū)別在于前者會停止舊的容器,創(chuàng)建啟動新的容器,并把舊容器移除掉。在這個過程中創(chuàng)建容器的各項定義參數(shù)都是從docker-compose up 指令和docker-compose.yml中傳入的。

????????接下來,啟動容器的方法也很簡潔,這個方法中完成了一個Docker容器啟動所需的主要參數(shù)的封裝,并在container模塊執(zhí)行啟動。該方法所支持的參數(shù)我想大多數(shù)朋友過是有所了解的。

????????最后,container模塊會調用docker-py客戶端執(zhí)行向Docker daemon發(fā)起創(chuàng)建容器的POST請求,再往后就是Docker處理的范疇了,相信看過我這篇文章?Docker:架構拆解請的朋友就明白了。

????????為了能夠說明compose如何實現(xiàn)上述編排與部署的原理,下面和大家分享一個通過compose來編排部署LNMP服務來更好的理解它。

Compose應用案例

安裝docker-ce

?

[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo[root@localhost ~]# yum -y install yum-utils device-mapper-persistent-data lvm2
[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo[root@localhost ~]# ls /etc/yum.repos.d/backup  Centos-aliyun.repo  CentOS-Media.repo  docker-ce.repo[root@localhost ~]# yum -y install docker-ce
[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker

阿里云鏡像加速器

阿里云登錄 - 歡迎登錄阿里云,安全穩(wěn)定的云計算服務平臺歡迎登錄阿里云,全球領先的云計算及人工智能科技公司,阿里云為200多個國家和地區(qū)的企業(yè)、開發(fā)者和政府機構提供云計算基礎服務及解決方案。阿里云云計算、安全、大數(shù)據、人工智能、企業(yè)應用、物聯(lián)網等云計算服務。https://cr.console.aliyun.com/

?

[root@localhost ~]# cat << END > /etc/docker/daemon.json
{"registry-mirrors":[ "https://nyakyfun.mirror.aliyuncs.com" ]
}
END
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
[root@localhost ~]# docker version
Client: Docker Engine - CommunityVersion:           19.03.8API version:       1.40Go version:        go1.12.17Git commit:        afacb8bBuilt:             Wed Mar 11 01:27:04 2020OS/Arch:           linux/amd64Experimental:      falseServer: Docker Engine - CommunityEngine:Version:          19.03.8API version:      1.40 (minimum version 1.12)Go version:       go1.12.17Git commit:       afacb8bBuilt:            Wed Mar 11 01:25:42 2020OS/Arch:          linux/amd64Experimental:     falsecontainerd:Version:          1.2.13GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429runc:Version:          1.0.0-rc10GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dddocker-init:Version:          0.18.0GitCommit:        fec3683

安裝docker-compose

docker-compose提取鏈接:https://pan.baidu.com/s/1ArQGMU0MYW5aILUHkqokXQ?pwd=1zuw?
提取碼:1zuw

[root@compose ~]# rz                #上傳docker-compose文件[root@compose ~]# mv docker-compose /usr/local/bin/mv:是否覆蓋"/usr/local/bin/docker-compose"? y[root@compose ~]# chmod +x /usr/local/bin/docker-compose[root@compose ~]# docker-compose --versiondocker-compose version 1.21.1, build 5a3f1a3

docker-compose用法

docker-compose ?[-f <arg>...] [options] [COMMAND] [ARGS...]

docker-compose 常用選項:

  1. --verbose 輸出更多調試信息。
  2. --version 打印版本并退出。
  3. -f, --file FILE 使用特定的 compose 模板文件,默認為docker-compose.yml。
  4. -p, --project-name NAME 指定項目名稱,默認使用目錄名稱。

docker-compose常用命令:

  1. build? 構建或重建服務
  2. kill??? 殺掉容器
  3. logs?? 顯示容器的輸出內容
  4. port?? 打印綁定的開放端口
  5. ps??? 顯示容器
  6. pull?? 拉取服務鏡像
  7. restart? 重啟服務
  8. rm?? 刪除停止的容器
  9. run?? 運行一個一次性命令
  10. scale? 設置服務的容器數(shù)目
  11. exec? 切換到容器內
  12. start? 開啟服務
  13. stop? 停止服務
  14. up?? 創(chuàng)建并啟動容器

其實這些常用命令用docker的命令功能是一樣的。

Yaml簡介

YAML是一種標記語言,可讀性很強。類似于XML數(shù)據描述語言,語法比XML簡單的多。YAML數(shù)據結構通過縮進來表示,連續(xù)的項目通過減號來表示,鍵值對用冒號分割,數(shù)組用括號括起來,hash用花括號括起來。

YAML文件格式注意事項:

在縮排中空白字符的數(shù)目并不是非常重要,只要相同階層的元素左側對齊就可以了(不過不能使用TAB字符);

  1. 通常開頭縮進2個空格;
  2. 字符的后面縮進1個空格,比如冒號、逗號、橫桿;
  3. 支持#注釋;
  4. 允許在文件中加入選擇性的空行,以增加可讀性;

docker-compose中YAML常用的字段:

?目錄結構

compose_lnmp-190606.zip文件提取鏈接:https://pan.baidu.com/s/1UqA6L9O6-tTkBcUyf-v3zQ?pwd=7bkk?
提取碼:7bkk

[root@localhost ~]# mkdir compose_lnmp[root@localhost ~]# cd compose_lnmp/[root@localhost compose_lnmp]# rz            #上傳compose_lnmp-190606.zip文件[root@localhost compose_lnmp]# unzip compose_lnmp-190606.zip Archive:  compose_lnmp-190606.zipinflating: compose_lnmp/nginx/nginx.conf  inflating: compose_lnmp/docker-compose.yml  creating: compose_lnmp/mysql/creating: compose_lnmp/mysql/conf/inflating: compose_lnmp/mysql/conf/my.cnf  creating: compose_lnmp/mysql/data/inflating: compose_lnmp/nginx/Dockerfile  inflating: compose_lnmp/nginx/nginx-1.12.1.tar.gz  extracting: compose_lnmp/nginx/run.sh  creating: compose_lnmp/php/inflating: compose_lnmp/php/Dockerfile  inflating: compose_lnmp/php/php-5.6.39.tar.gz  inflating: compose_lnmp/php/php.ini  creating: compose_lnmp/wwwroot/extracting: compose_lnmp/wwwroot/index.html  extracting: compose_lnmp/wwwroot/index.php  [root@localhost compose_lnmp]# tree
.
├── compose_lnmp
│?? ├── docker-compose.yml
│?? ├── mysql
│?? │?? ├── conf
│?? │?? │?? └── my.cnf
│?? │?? └── data
│?? ├── nginx
│?? │?? ├── Dockerfile
│?? │?? ├── nginx-1.12.1.tar.gz
│?? │?? ├── nginx.conf
│?? │?? └── run.sh
│?? ├── php
│?? │?? ├── Dockerfile
│?? │?? ├── php-5.6.39.tar.gz
│?? │?? └── php.ini
│?? └── wwwroot
│??     ├── index.html
│??     └── index.php
└── compose_lnmp-190606.zip7 directories, 12 files

編寫compose文件

[root@compose compose_lnmp]# cat docker-compose.yml 
version: '3'
services:nginx:hostname: nginxbuild:context: ./nginxdockerfile: Dockerfileports:- 80:80networks:- lnmpvolumes:- ./wwwroot:/usr/local/nginx/htmlphp:hostname: phpbuild:context: ./phpdockerfile: Dockerfileports:- 9000:9000networks:- lnmpvolumes:- ./wwwroot:/usr/local/nginx/htmlmysql:hostname: mysqlimage: mysql:5.6ports:- 3306:3306networks:- lnmpvolumes:- ./mysql/conf:/etc/mysql/conf.d- ./mysql/data:/var/lib/mysqlcommand: --character-set-server=utf8environment:MYSQL_ROOT_PASSWORD: 123456MYSQL_DATABASE: wordpressMYSQL_USER: userMYSQL_PASSWORD: user123networks:lnmp:

可以看到一份標準配置文件應該包含 version、services、networks 三大部分,共有三級標簽,每一級都是縮進兩個空格。下面來詳細說明一下里面的內容:

version: '3'??這是定義compose的版本號為version 3,可以參考官方文檔詳細了解具體有哪些版本?Overview | Docker Documentation

services:

nginx:這是services下面的二級標簽,名字用戶自己定義,它將是服務運行后的名稱;
hostname: nginx 這是定義容器的主機名,將寫入到/etc/hostname中;

build:

?context: ./nginx 指定nginx服務的上下文路徑;

?dockerfile:Dockerfile 指定通過上面指定路徑中的Dockerilfe來構建;

ports:

?- 80:80 端口映射沒什么好說的;

networks:

?-lnmp 指定的網絡環(huán)境
volumes:把宿主機的/wwwroot目錄綁定到容器中的/usr/local/nginx/html目錄;

php:這個二級標簽服務和下面的內容跟nginx差不多;

mysql:這個二級標簽服務也和nginx、php差不多,唯一不同的是多了個images標簽、還有定義了些環(huán)境變量。

image: mysql:5.6 它是通過mysql:5.6鏡像來構建mysql服務器,前面nginx、php都指定了上下文通過Dockerfile來構建的。

??environment:

? ?MYSQL_ROOT_PASSWORD:定義root用戶密碼變量為123456;

? ?MYSQL_DATABASE:定義了數(shù)據變量為wordpress;

? ?MYSQL_USER:定義了普通用戶變量為user;

? ?MYSQL_PASSWORD:定義了普通用戶密碼變量為user123;

3、networks:

???lnmp: 相當于執(zhí)行docker network create lnmp命令了;

最后來運行docker-compose命令來啟動:

[root@localhost ~]# cat centos-7-x86_64.tar.gz | docker import - centos:7sha256:7ed67541d15fe31090ac0cf8528c5a05c8f6ecff3a17a57c6820004ecd823240[root@localhost ~]# docker imagesREPOSITORY   TAG       IMAGE ID       CREATED          SIZE
centos       7         7ed67541d15f   17 seconds ago   589MB[root@localhost compose_lnmp]# docker-compose -f docker-compose.yml up -dStatus: Downloaded newer image for mysql:5.6
Creating compose_lnmp_mysql_1 ... done
Creating compose_lnmp_nginx_1 ... done
Creating compose_lnmp_php_1   ... done[root@localhost compose_lnmp]# docker-compose psName                     Command             State              Ports           
----------------------------------------------------------------------------------------
compose_lnmp_mysql_1   docker-entrypoint.sh --cha    Up      0.0.0.0:3306->3306/tcp,:::3...                                   306->3306/tcp              
compose_lnmp_nginx_1   /run.sh                       Up      0.0.0.0:80->80/tcp,:::80->80/tcp                      
compose_lnmp_php_1     ./sbin/php-fpm -c /usr/loc    Up      0.0.0.0:9000->9000/tcp,:::9...                                   000->9000/tcp             

驗證LNMP環(huán)境?

客戶端使用瀏覽器驗證 docker-compose 創(chuàng)建的 lnmp 環(huán)境

?

?

PS:如果訪問報 Access denined.,手動進入 nginx 容器添加讀權限。

docker-compose解決的問題局限在“編排”二字,甚至連“部署”范疇都涉足甚少,而在一個能夠服務于大眾的云平臺中,編排與部署也僅僅是其中的一個組成部分而已。來一起分析一下它的局限制會有哪些:

  1. docker-compse是面向單宿主機部署的,這是一種部署能力的欠缺。在更多的場合下,管理員需要面對大量物理服務器(或者虛擬機),這時如果要實現(xiàn)基于docker-compose的容器自動化編排與部署,管理員就得借助成熟的自動化運維工具(ansible、puppet、chef、saltstack)來負責管理多個目標主機,將docker-compose所需的所有資源(配置文件、用戶代碼)交給目標主機,然后在目標主機上執(zhí)行docker-compose指令。
  2. 同樣網絡和存儲也比較棘手,Docker不能提供跨宿主機的網絡,完全面向Docker daemon的docker-compose當然也不支持。這意味著管理員必須部署一套類似于Open vSwich的獨立網絡工具,而且管理員還需要完成集成工作。當好不容易把容器編排都安排妥當之后,又會發(fā)現(xiàn)容器還處在內網環(huán)境中,于是負載均衡、服務發(fā)現(xiàn)等一堆問題就面臨而來了,這些問題很快能消耗掉工程師所有的耐心。

那么,是否有一種能夠提供完善的面向服務器集群的Docker編排和部署方案呢?Docker官方給出的答案是Compose同Machine和Swarm聯(lián)動,其實還有大家近期經常聽到了kubernetes(k8s)。

http://aloenet.com.cn/news/34107.html

相關文章:

  • 網站天天做收錄有效果嗎google中文搜索引擎入口
  • 杭州醫(yī)療器械網站制作app開發(fā)價格表
  • 合肥網站建設工作室企業(yè)qq多少錢一年
  • 貴州建設廳監(jiān)理協(xié)會網站汕頭網站設計公司
  • 怎么做中英文版網站國內搜索引擎排名
  • 網站內容及實現(xiàn)方式qq代刷網站推廣
  • 怎么描述網站主頁做的好關鍵詞排名的工具
  • 廣州網站 制作信科便宜制作網頁的基本步驟
  • 濰坊網站建設價格百度云搜索入口
  • wordpress get_the_post_thumbnail石家莊百度搜索優(yōu)化
  • 網站開發(fā)上線流程圖歐美網站建設公司
  • 英文網站模板源代碼免費源碼下載網站
  • 紅色好看的網站免費外鏈網站seo發(fā)布
  • 深圳網站建設軟件開發(fā)公司小程序開發(fā)平臺有哪些
  • wordpress xmlrpcseo崗位有哪些
  • 建筑人才網招聘官網首頁如何進行網站性能優(yōu)化
  • 最好科技廣州網站建設seo排名工具提升流量
  • 企業(yè)網站目的成都網站建設公司排名
  • 網站建設中模板代碼seo快速排名優(yōu)化方法
  • 給期貨交易類做網站違法嗎濰坊關鍵詞優(yōu)化排名
  • php網站開發(fā)文檔模板關鍵詞搜索優(yōu)化公司
  • 常德舉報網站seo在線工具
  • wordpress部分文字管理員可見百度seo推廣首選帝搜軟件
  • 免費商城系統(tǒng)下載福建網絡seo關鍵詞優(yōu)化教程
  • 動態(tài)網站建設案例教程下載男生短期培訓就業(yè)
  • wordpress哪些文件需要給777成都網站seo技巧
  • php網站數(shù)據遷移鄭州網站建設七彩科技
  • 河南如何做網站seo優(yōu)化公司信
  • 青島旅游網站建設怎么制作一個網站5個網頁
  • 天津網絡關鍵詞排名石家莊seo網站排名