Docker.v19安裝和配置Docker Compose編排工具的方法
一、Compose簡(jiǎn)介
Compose是用于定義和運(yùn)行多容器Docker應(yīng)用程序的工具。通過(guò)Compose,可以使用YAML文件來(lái)配置應(yīng)用程序的服務(wù)。然后,使用一個(gè)命令,就可以從配置中創(chuàng)建并啟動(dòng)所有服務(wù)。
Docker-Compose是一個(gè)容器編排工具。通過(guò)一個(gè).yml或.yaml文件,將所有的容器的部署方法、文件映射、容器端口映射等情況寫在一個(gè)配置文件里,執(zhí)行docker-compose up命令就像執(zhí)行腳本一樣,一個(gè)一個(gè)的安裝并部署容器。
YAML文件基本語(yǔ)法:
- 大小寫敏感;
- 使用縮進(jìn)表示層級(jí)關(guān)系;
- 縮進(jìn)不允許使用tab,只允許空格;
- 縮進(jìn)的空格數(shù)不重要,只要相同等級(jí)的元素左對(duì)齊即可;
- “#”表示注釋;
Dockerfile 可以讓用戶管理一個(gè)單獨(dú)的應(yīng)用容器;而 Compose 則允許用戶在一個(gè)模板(YAML 格式)中定義一組相關(guān)聯(lián)的應(yīng)用容器,例如一個(gè) Web 服務(wù)容器再加上后端的數(shù)據(jù)庫(kù)服務(wù)容器等,如下:
Docker Compose將所管理的容器分為三層:
- 項(xiàng)目(project);
- 服務(wù)(service);
- 容器(container);
docker compose運(yùn)行目錄下的所有yml文件組成一個(gè)項(xiàng)目,一個(gè)項(xiàng)目包含多個(gè)服務(wù),每個(gè)服務(wù)中定義了容器運(yùn)行的鏡像、參數(shù)、依賴。一個(gè)服務(wù)可包括多個(gè)容器實(shí)例。
docker-compose就是docker容器的編排工具,主要就是解決相互有依賴關(guān)系的多個(gè)容器的管理。
二、安裝Docker
服務(wù)器為CentOS7.4;Docker版本為19.03.9
1、安裝19.03.9版本Docker
[root@centos01 ~]# cd /etc/yum.repos.d/ [root@centos01 yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo <!--下載Centos7源--> [root@centos01 yum.repos.d]# curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.ce.repo <!--下載最新版本docker源--> [root@centos01 ~]# yum -y install docker-ce yum-utils device-mapper-persitent-data lvm2 <!--安裝docker和docker-ce依賴程序--> [root@centos01 ~]# docker version <!--查看docker版本--> Client: Docker Engine - Community Version: 19.03.9 API version: 1.40 Go version: go1.13.10 Git commit: 9d988398e7 Built: Fri May 15 00:25:27 2020 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03.9 API version: 1.40 (minimum version 1.12) Go version: go1.13.10 Git commit: 9d988398e7 Built: Fri May 15 00:24:05 2020 OS/Arch: linux/amd64 [root@centos01 ~]# systemctl start docker <!--啟動(dòng)docker服務(wù)--> [root@centos01 ~]# systemctl enable docker <!--設(shè)置開機(jī)自動(dòng)啟動(dòng)-->
2、配置鏡像加速
接下來(lái)啟用道云提供的下載鏡像加速功能(阿里也提供了該功能,我這里就寫道云了)。
道云加速器網(wǎng)址:https://www.daocloud.io/
流程如下:
1)訪問(wèn)道云的官網(wǎng);
2)注冊(cè)用戶并且登錄;
前兩步完成后,請(qǐng)看圖操作:
看到以下界面后,往下拖頁(yè)面:
拖到此處,根據(jù)自己系統(tǒng)版本,復(fù)制相應(yīng)的命令(基于Linux服務(wù)器就復(fù)制下面這行):
[root@centos01 ~]# curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io <!--粘貼剛才復(fù)制的命令--> docker version >= 1.12 {"registry-mirrors": ["http://f1361db2.m.daocloud.io"]} Success. You need to restart docker to take effect: sudo systemctl restart docker [root@centos01 ~]# cat /etc/docker/daemon.json <!--查看加速是否配置成功--> {"registry-mirrors": ["http://f1361db2.m.daocloud.io"]} [root@centos01 ~]# systemctl restart docker <!--重新啟動(dòng)docker服務(wù)-->
三、安裝使用Docker Compose
1、Github下載Docker Compose
若想使用compose這個(gè)容器編排工具,那么,必須是基于docker這個(gè)服務(wù),然后下載docker-compose這個(gè)命令,我們可以去github官方網(wǎng)站搜索“docker Compose”,如下:
下載compose工具時(shí),需先查看本機(jī)的docker版本!
[root@centos01 ~]# docker -v Docker version 19.03.9, build 9d988398e7
如果docker版本過(guò)低,可以自行查找其他版本的docker-compose工具。選擇合適的版本之后,執(zhí)行在github網(wǎng)站上找到的命令。
[root@centos01 ~]#curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose [root@centos01 ~]#chmod +x /usr/local/bin/docker-compose
2、道云下載Docker Compose
如果網(wǎng)速不佳下載失敗可以選擇一下方式下載:(個(gè)人比較推薦一下方式下載)
首先我們?cè)L問(wèn)道云官網(wǎng) 去道云官網(wǎng)下載,如下:
[root@centos01 ~]# curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose <!--粘貼剛才復(fù)制的命令下載Docker Compose--> [root@centos01 ~]# docker-compose -v <!--查看Docker Compose版本--> docker-compose version 1.25.5, build 8a1c60f6
可以通過(guò)修改URL中的版本,可以自定義您的需要的版本。執(zhí)行上面的兩條命令后,我們就可以使用docker-compose這個(gè)編排工具了。
四、編寫.yml文件
1、.yml文件構(gòu)建簡(jiǎn)單的Nginx服務(wù)
[root@centos01 ~]# vim /root/.vimrc set tabstop=2 [root@centos01 ~]# source /root/.vimrc <!--由于tab鍵使用的較多,所以事先設(shè)置了一個(gè)tab鍵代表兩個(gè)空格數(shù)--> [root@centos01 ~]# mkdir docker_compose <!--創(chuàng)建一個(gè)測(cè)試目錄,用于存放docker-compose.yml文件--> [root@centos01 ~]# cd docker_compose/ <!--進(jìn)入剛常見的目錄--> <!--建議一個(gè)目錄下只有一個(gè)docker-compose.yml文件--> [root@centos01 docker_compose]# vim docker-compose.yml <!--編寫一個(gè)docker-compose.yml文件--> version: "3" <!--compose的版本--> services: <!--定義服務(wù)--> nginx: container_name: nginx <!--運(yùn)行的容器名--> image: nginx:latest <!--使用的鏡像--> restart: always <!--隨docker服務(wù)的啟動(dòng)而啟動(dòng)--> ports: - 80:80 <!--映射的端口--> volumes: - /root/compose_test/webserver:/usr/share/nginx/html <!--本地與容器掛載的目錄--> <!--編寫文件注意縮進(jìn)--> [root@centos01 docker_compose]# docker-compose up -d <!--使用當(dāng)前目錄下的docker-compose.yml文件生成相應(yīng)的容器--> <!--“-d”選項(xiàng),表示后臺(tái)運(yùn)行,如果不指定,默認(rèn)則在前臺(tái)運(yùn)行,會(huì)占用終端--> [root@centos01 docker_compose]# docker ps <!--查看運(yùn)行的容器--> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a4d71936dd12 nginx:latest "nginx -g 'daemon of…" 46 seconds ago Up 45 seconds 0.0.0.0:80->80/tcp nginx [root@centos01 docker_compose]# echo "www.docker-compose.com" > webserver/index.html <!--創(chuàng)建測(cè)試網(wǎng)頁(yè)--> [root@centos01 docker_compose]# curl http://192.168.100.10 <!--訪問(wèn)測(cè)試--> www.docker-compose.com [root@centos01 docker_compose]# docker-compose stop <!--通過(guò).yml文件停止文件中指定的容器--> Stopping nginx ... done [root@centos01 docker_compose]# docker ps <!--查看容器是否停止--> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@centos01 ~]# docker-compose -f docker_compose/docker-compose.yml up -d <!--可以使用“-f”選項(xiàng)來(lái)指定yml文件啟動(dòng)文件中定義的容器-->
2、compose+dockerfile構(gòu)建鏡像
[root@centos01 ~]# mkdir compose && cd compose <!--創(chuàng)建一個(gè)測(cè)試目錄并進(jìn)入--> [root@centos01 compose]# vim Dockerfile <!--創(chuàng)建dockerfile--> FROM nginx:latest <!--基礎(chǔ)鏡像--> ADD html /usr/share/nginx/html [root@centos01 compose]# vim docker-compose.yml <!--編寫yml文件--> version: '3' services: nginx: build: . <!--這里指定dockerfile的路徑,可以寫相對(duì)路徑或絕對(duì)路徑--> container_name: nginx001 <!--生成的容器名稱--> image: nginx001 <!--使用dockerfile生成的鏡像名稱--> restart: always <!--隨docker服務(wù)的啟動(dòng)而啟動(dòng)--> ports: - 8080:80 <!--映射的端口--> [root@centos01 compose]# mkdir html <!--創(chuàng)建網(wǎng)站根目錄--> [root@centos01 compose]# echo "www.nginx.8080.com" > html/index.html <!--寫入主頁(yè)測(cè)試內(nèi)容--> [root@centos01 compose]# docker-compose up -d <!--生成容器--> [root@centos01 compose]# docker ps <!--查看容器--> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1428cd1ab7de nginx001 "nginx -g 'daemon of…" About a minute ago Up About a minute 0.0.0.0:8080->80/tcp nginx001 a4d71936dd12 nginx:latest "nginx -g 'daemon of…" 18 minutes ago Up 15 minutes 0.0.0.0:80->80/tcp nginx [root@centos01 compose]# docker images <!--查看鏡像--> REPOSITORY TAG IMAGE ID CREATED SIZE nginx001 latest 55b8bd0a4a59 About a minute ago 127MB nginx latest 9beeba249f3e 5 days ago 127MB [root@centos01 compose]# curl http://192.168.100.10:8080 <!--訪問(wèn)測(cè)試--> www.nginx.8080.com [root@centos01 compose]# docker-compose stop <!--停止容器--> Stopping nginx001 ... done [root@centos01 ~]# docker-compose -f compose/docker-compose.yml up -d <!--通過(guò)-f指定.yml文件來(lái)運(yùn)行容器--> Starting nginx001 ... done
3、使用.yml文件搭建博客平臺(tái)
[root@centos01 ~]# mkdir wordpress && cd wordpress <!--創(chuàng)建測(cè)試目錄--> [root@centos01 wordpress]# vim docker-compose.yml <!--編寫yml文件--> version: '3.1' services: wordpress: image: wordpress <!--指定使用的鏡像--> restart: always ports: - 1111:80 <!--指定映射的端口--> environment: <!--修改容器內(nèi)部的環(huán)境變量--> WORDPRESS_DB_HOST: mysql WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: pwd@123 WORDPRESS_DB_NAME: wordpress mysql: image: mysql:5.6 restart: always command: --character-set-server=utf8 <!--支持中文--> environment: MYSQL_ROOT_PASSWORD: pwd@123 <!--root訪問(wèn)數(shù)據(jù)庫(kù)密碼--> MYSQL_DATABASE: wordpress <!--創(chuàng)建wordpress數(shù)據(jù)庫(kù)--> MYSQL_USER: wordpress <!--用戶名字--> MYSQL_PASSWORD: pwd@123 <!--用戶訪問(wèn)密碼--> [root@centos01 wordpress]# docker-compose up -d <!--生成相應(yīng)的容器,并在后臺(tái)運(yùn)行--> [root@centos01 wordpress]# docker ps <!-- 查看運(yùn)行的容器--> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a93858ade399 wordpress "docker-entrypoint.s…" 28 seconds ago Up 27 seconds 0.0.0.0:1111->80/tcp wordpress_wordpress_1 cec94e3bd0ee mysql:5.6 "docker-entrypoint.s…" 28 seconds ago Up 27 seconds 3306/tcp wordpress_mysql_1 [root@centos01 wordpress]# docker images <!--查看鏡像--> REPOSITORY TAG IMAGE ID CREATED SIZE mysql 5.6 9e4a20b3bbbc 10 hours ago 302MB wordpress latest 675af3ca3193 5 days ago 540MB [root@centos01 wordpress]# netstat -anptu |grep 1111 <!--確定1111端口在監(jiān)聽--> tcp6 0 0 :::1111 :::* LISTEN 119795/docker-proxy [root@centos01 wordpress]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf <!--開啟路由功能--> [root@centos01 wordpress]# sysctl -p <!--刷新配置--> net.ipv4.ip_forward = 1
客戶端訪問(wèn)http://192.168.100.10:1111
設(shè)置基礎(chǔ)信息:
安裝完成,登錄:
輸入用戶名密碼:
修改字體為簡(jiǎn)體中文:
到此這篇關(guān)于安裝Docker.v19和配置Docker Compose編排工具的方法的文章就介紹到這了,更多相關(guān)Docker安裝配置Docker Compose 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker鏡像構(gòu)建原理解析(不裝docker也能構(gòu)建鏡像)
這篇文章主要介紹了Docker鏡像構(gòu)建原理解析(不裝docker也能構(gòu)建鏡像),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03docker服務(wù)關(guān)停的實(shí)現(xiàn)步驟
在我看來(lái)所謂的優(yōu)雅關(guān)閉,就是在系統(tǒng)關(guān)閉時(shí),預(yù)留一些時(shí)間,讓你有機(jī)會(huì)來(lái)善后一些事情,本文就來(lái)介紹一下docker服務(wù)如何正確關(guān)停,感興趣的可以了解一下2023-10-10使用Docker配置redis sentinel哨兵的方法步驟
本文主要介紹了Docker配置redis sentinel哨兵的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07Docker創(chuàng)建tomcat容器實(shí)例后無(wú)法訪問(wèn)(HTTP狀態(tài)404)
本文主要介紹了Docker創(chuàng)建tomcat容器實(shí)例后無(wú)法訪問(wèn),HTTP狀態(tài)顯示404,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07