您好,登錄后才能下訂單哦!
Compose 項(xiàng)目是 Docker 官方的開源項(xiàng)目,負(fù)責(zé)實(shí)現(xiàn)對(duì) Docker 容器集群的快速編排。
通過之前的介紹,我們知道使用一個(gè) Dockerfile 模板文件,可以讓用戶很方便的定義一個(gè)單獨(dú)的應(yīng)用容器。然而,在日常工作中,經(jīng)常會(huì)碰到需要多個(gè)容器相互配合來完成某項(xiàng)任務(wù)的情況。例如要實(shí)現(xiàn)一個(gè) Web 項(xiàng)目,除了 Web 服務(wù)容器本身,往往還需要再加上后端的數(shù)據(jù)庫服務(wù)容器,甚至還包括負(fù)載均衡容器等。
Compose 恰好滿足了這樣的需求。它允許用戶通過一個(gè)單獨(dú)的 docker-compose.yml 模板文件(YAML 格式)來定義一組相關(guān)聯(lián)的應(yīng)用容器為一個(gè)項(xiàng)目(project)。
Compose 中有兩個(gè)重要的概念:
服務(wù) (service):一個(gè)應(yīng)用的容器,實(shí)際上可以包括若干運(yùn)行相同鏡像的容器實(shí)例。
項(xiàng)目 (project):由一組關(guān)聯(lián)的應(yīng)用容器組成的一個(gè)完整業(yè)務(wù)單元,在 docker-compose.yml 文件中定義。
Compose 的默認(rèn)管理對(duì)象是項(xiàng)目,通過子命令對(duì)項(xiàng)目中的一組容器進(jìn)行便捷地生命周期管理。
使用微服務(wù)架構(gòu)的系統(tǒng)一般包含若干個(gè)微服務(wù),每個(gè)微服務(wù)一般部署多個(gè)實(shí)例。如果每個(gè)服務(wù)都要手動(dòng)啟停,那么效率低,維護(hù)量大。
通過Docker-Compose用戶可以很容易地用一個(gè)配置文件定義一個(gè)多容器的應(yīng)用,然后使用一條指令安裝這個(gè)應(yīng)用的所有依賴,完成編寫。Docker-Compose解決了容器與容器之間如何管理編排的問題。
Docker Compose工作原理圖
撰寫中有兩個(gè)重要的概念:
服務(wù)(服務(wù)):一個(gè)應(yīng)用的容器,實(shí)際上可以包括多個(gè)運(yùn)行相同相同的容器實(shí)例。
項(xiàng)目(項(xiàng)目):由各個(gè)關(guān)聯(lián)的應(yīng)用容器組成的一個(gè)完整的業(yè)務(wù)單元,在docker-compose.yml文件中定義。
一個(gè)項(xiàng)目可以由多個(gè)服務(wù)(容器)關(guān)聯(lián),組成面向項(xiàng)目進(jìn)行管理,通過子命令對(duì)項(xiàng)目中的單個(gè)容器進(jìn)行便捷地生命周期管理。
Compose項(xiàng)目由Python編寫,實(shí)現(xiàn)上調(diào)用了Docker服務(wù)提供的API來對(duì)容器進(jìn)行管理。因此,只要所操作的平臺(tái)支持Docker API,就可以在其上利用Compose來進(jìn)行編排管理。
Docker三大編排工具:
Docker Compose:是用來組裝多容器應(yīng)用的工具,可以在 Swarm集群中部署分布式應(yīng)用。
Docker Machine:是支持多平臺(tái)安裝Docker的工具,使用 Docker。Machine,可以很方便地在筆記本、云平臺(tái)及數(shù)據(jù)中心里安裝Docker。
Docker Swarm:是Docker社區(qū)原生提供的容器集群管理工具。
Docker Compose命令詳解
Docker compose的使用非常類似于docker命令的使用,但是需要注意的是大部分的compose命令都需要到docker-compose.yml文件所在的目錄下才能執(zhí)行。
compose以守護(hù)進(jìn)程模式運(yùn)行加-d選項(xiàng)
#下載
sudo curl -L https://github.com/docker/compose/releases/download/1.20.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
#安裝
chmod +x /usr/local/bin/docker-compose
#查看版本
docker-compose version
主機(jī) | ip地址 | 服務(wù) |
---|---|---|
docker | 192.168.1.11 | compose+wordpress |
docker容器的編排工具: 解決相互有依賴關(guān)系的多個(gè)容器的管理。
[root@docker01 ~]# docker-compose -v
//驗(yàn)證已有docker-compose命令
通過識(shí)別一個(gè)docker-compose.yml的配置文件,去管理容器。
[root@docker01 ~]# vim .vimrc
set tabstop=2
//設(shè)置tab鍵的空格數(shù)量
[root@docker01 ~]# source .vimrc
//刷新一下
[root@docker01 ~]# mkdir compose_test
//創(chuàng)建測(cè)試目錄
[root@docker01 ~]# cd compose_test/
[root@docker01 compose_test]# vim docker-compose.yml
//創(chuàng)建測(cè)試文件docker-compose.yml
version: "3"
services:
nginx:
container_name: web-nginx
image: nginx
restart: always
ports:
- 90:80
volumes:
- ./webserver:/usr/share/nginx/html
第一部分: version: 指定語法格式的版本。
第二部分: service: 定義服務(wù),(想要運(yùn)行什么樣的容器)
[root@docker01 compose_test]# docker-compose up -d
//后臺(tái)運(yùn)行docker-compose規(guī)定的容器。(在執(zhí)行這條命令的當(dāng)前目錄下,也需要一個(gè)docker-compose.yml的配置文件,并且通常只有一個(gè)。)
[root@docker01 compose_test]# docker ps
//查看容器信息
[root@docker01 compose_test]# curl 127.0.0.1:90
//訪問nginx會(huì)失敗,因?yàn)閽燧d目錄沒有頁面內(nèi)容
[root@docker01 compose_test]# vim webserver/index.html
//創(chuàng)建測(cè)試網(wǎng)頁
xgp666
[root@docker01 compose_test]# curl 127.0.0.1:90
//再次訪問,是成功的
xgp666
[root@docker01 compose_test]# docker-compose stop
[root@docker01 compose_test]# docker-compose restart
[root@docker01 ~]# docker-compose -f compose_test/docker-compose.yml stop
[root@docker01 compose_test]# vim Dockerfile
//編寫dockerfile
FROM nginx
ADD webserver /usr/share/nginx/html
[root@docker01 compose_test]# vim docker-compose.yml
//修改docker-compose.yml文件
version: "3"
services:
nginx:
build: . #添加
container_name: web-nginx
image: new-nginx:v1.0 #修改鏡像名稱
restart: always
ports:
- 90:80
[root@docker01 compose_test]# docker-compose stop
Stopping web-nginx ... done
[root@docker01 compose_test]# docker-compose rm
[root@docker01 compose_test]# docker-compose up -d
//通過docker-compose.yml文件[運(yùn)行]()容器
[root@docker01 compose_test]# docker ps
//查看容器信息
[root@docker01 compose_test]# curl 127.0.0.1:90
//測(cè)試訪問nginx頁面,成功
xgp666
[root@docker01 ~]# docker pull wordpress
//下載wordpress容器
[root@docker01 ~]# docker pull mysql:5.7
//下載mysql:5.7容器
[root@docker01 ~]# mkdir wordpress
//創(chuàng)建wordpress測(cè)試文件
[root@docker01 ~]# cd wordpress/
[root@docker01 wordpress]# vim docker-compose.yml
//編寫docker-compose.yml
version: "3.1"
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: 123.com
WORDPRESS_DB_NAME: wordpress
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: 123.com
MYSQL_ROOT_PASSWORD: 123.com
[root@docker01 wordpress]# docker-compose up -d
[root@docker01 wordpress]# docker ps
//查看容器信息
[root@docker01 wordpress]# docker logs 容器名稱
//查看容器日志
選擇語言
安裝wordpress
登陸wordpress
登陸成功后,自己就可以進(jìn)行設(shè)置了
首先查看主機(jī)名是否更改
防火墻和selinux是否關(guān)閉
docker-compose命令是否安裝給予權(quán)限
docker--compose.yml 編寫是否有問題
容器執(zhí)行是否正常
(如果瀏覽器訪問不到,可以添加一條路由轉(zhuǎn)發(fā))
以上步驟之后,基本wordpress搭建和一些必備的設(shè)置就算完成了,剩下的更多是個(gè)人的選擇,每個(gè)人可能要求不同,下面就說幾點(diǎn)wordpress優(yōu)化的建議
1.無論你是做百度seo,安裝一個(gè)SEO插件,就算不想設(shè)置文章的TDK,至少網(wǎng)站首頁的有必要設(shè)置一下,推薦 All in one seo pack
2.定期備份,備份的重要性不用多說,凡是丟過數(shù)據(jù)的人都會(huì)養(yǎng)成備份的習(xí)慣,WordPress備份網(wǎng)站方法
3.安裝一個(gè)安全插件,WordPress安全插件推薦
4.及時(shí)更新網(wǎng)站的主題和插件,WordPress插件自動(dòng)更新方法
5.刪除所有沒有用的主題和插件,WordPress刪除主題方法
6.設(shè)置垃圾留言過濾,wordpress防垃圾留言插件Akismet
WordPress建站基礎(chǔ)主要就是這些,后面的話就是根據(jù)自己的站點(diǎn)進(jìn)行各種設(shè)置,不同類型的站點(diǎn)使用主題和插件都是很大區(qū)別的。不過如果你能學(xué)會(huì)本篇所介紹的內(nèi)容,相信你的站點(diǎn)就已經(jīng)超過了絕大部分網(wǎng)站,好了今天教程就到這里,如果你有什么問題或者其他更好的建議,歡迎留言討論
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。