Docker.v19安裝和配置Docker Compose編排工具的方法
一、Compose簡介
Compose是用于定義和運行多容器Docker應用程序的工具。通過Compose,可以使用YAML文件來配置應用程序的服務。然后,使用一個命令,就可以從配置中創建并啟動所有服務。
Docker-Compose是一個容器編排工具。通過一個.yml或.yaml文件,將所有的容器的部署方法、文件映射、容器端口映射等情況寫在一個配置文件里,執行docker-compose up命令就像執行腳本一樣,一個一個的安裝并部署容器。
YAML文件基本語法:
大小寫敏感; 使用縮進表示層級關系; 縮進不允許使用tab,只允許空格; 縮進的空格數不重要,只要相同等級的元素左對齊即可; “#”表示注釋;Dockerfile 可以讓用戶管理一個單獨的應用容器;而 Compose 則允許用戶在一個模板(YAML 格式)中定義一組相關聯的應用容器,例如一個 Web 服務容器再加上后端的數據庫服務容器等,如下:
Docker Compose將所管理的容器分為三層:
項目(project); 服務(service); 容器(container);docker compose運行目錄下的所有yml文件組成一個項目,一個項目包含多個服務,每個服務中定義了容器運行的鏡像、參數、依賴。一個服務可包括多個容器實例。
docker-compose就是docker容器的編排工具,主要就是解決相互有依賴關系的多個容器的管理。
二、安裝Docker
服務器為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: falseServer: 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 <!--啟動docker服務-->[root@centos01 ~]# systemctl enable docker <!--設置開機自動啟動-->
2、配置鏡像加速
接下來啟用道云提供的下載鏡像加速功能(阿里也提供了該功能,我這里就寫道云了)。道云加速器網址:https://www.daocloud.io/流程如下:
1)訪問道云的官網;
2)注冊用戶并且登錄;
前兩步完成后,請看圖操作:
看到以下界面后,往下拖頁面:
拖到此處,根據自己系統版本,復制相應的命令(基于Linux服務器就復制下面這行):
[root@centos01 ~]# curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io <!--粘貼剛才復制的命令-->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 <!--重新啟動docker服務-->
三、安裝使用Docker Compose
1、Github下載Docker Compose
若想使用compose這個容器編排工具,那么,必須是基于docker這個服務,然后下載docker-compose這個命令,我們可以去github官方網站搜索“docker Compose”,如下:
下載compose工具時,需先查看本機的docker版本!
[root@centos01 ~]# docker -vDocker version 19.03.9, build 9d988398e7
如果docker版本過低,可以自行查找其他版本的docker-compose工具。選擇合適的版本之后,執行在github網站上找到的命令。
[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
如果網速不佳下載失敗可以選擇一下方式下載:(個人比較推薦一下方式下載)
首先我們訪問道云官網 去道云官網下載,如下:
[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 <!--粘貼剛才復制的命令下載Docker Compose-->[root@centos01 ~]# docker-compose -v <!--查看Docker Compose版本-->docker-compose version 1.25.5, build 8a1c60f6
可以通過修改URL中的版本,可以自定義您的需要的版本。執行上面的兩條命令后,我們就可以使用docker-compose這個編排工具了。
四、編寫.yml文件
1、.yml文件構建簡單的Nginx服務
[root@centos01 ~]# vim /root/.vimrcset tabstop=2[root@centos01 ~]# source /root/.vimrc<!--由于tab鍵使用的較多,所以事先設置了一個tab鍵代表兩個空格數-->[root@centos01 ~]# mkdir docker_compose <!--創建一個測試目錄,用于存放docker-compose.yml文件-->[root@centos01 ~]# cd docker_compose/ <!--進入剛常見的目錄--><!--建議一個目錄下只有一個docker-compose.yml文件-->[root@centos01 docker_compose]# vim docker-compose.yml <!--編寫一個docker-compose.yml文件-->version: '3' <!--compose的版本-->services: <!--定義服務--> nginx: container_name: nginx <!--運行的容器名--> image: nginx:latest <!--使用的鏡像--> restart: always<!--隨docker服務的啟動而啟動--> ports: - 80:80 <!--映射的端口--> volumes: - /root/compose_test/webserver:/usr/share/nginx/html <!--本地與容器掛載的目錄--><!--編寫文件注意縮進--> [root@centos01 docker_compose]# docker-compose up -d<!--使用當前目錄下的docker-compose.yml文件生成相應的容器--><!--“-d”選項,表示后臺運行,如果不指定,默認則在前臺運行,會占用終端-->[root@centos01 docker_compose]# docker ps <!--查看運行的容器-->CONTAINER ID IMAGECOMMAND CREATED STATUS PORTSNAMESa4d71936dd12 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 <!--創建測試網頁-->[root@centos01 docker_compose]# curl http://192.168.100.10 <!--訪問測試-->www.docker-compose.com[root@centos01 docker_compose]# docker-compose stop <!--通過.yml文件停止文件中指定的容器-->Stopping nginx ... done[root@centos01 docker_compose]# docker ps <!--查看容器是否停止-->CONTAINER ID IMAGECOMMAND CREATED STATUS PORTSNAMES[root@centos01 ~]# docker-compose -f docker_compose/docker-compose.yml up -d<!--可以使用“-f”選項來指定yml文件啟動文件中定義的容器-->
2、compose+dockerfile構建鏡像
[root@centos01 ~]# mkdir compose && cd compose <!--創建一個測試目錄并進入-->[root@centos01 compose]# vim Dockerfile <!--創建dockerfile-->FROM nginx:latest <!--基礎鏡像-->ADD html /usr/share/nginx/html [root@centos01 compose]# vim docker-compose.yml <!--編寫yml文件-->version: ’3’services: nginx: build: . <!--這里指定dockerfile的路徑,可以寫相對路徑或絕對路徑--> container_name: nginx001 <!--生成的容器名稱--> image: nginx001 <!--使用dockerfile生成的鏡像名稱--> restart: always <!--隨docker服務的啟動而啟動--> ports: - 8080:80 <!--映射的端口-->[root@centos01 compose]# mkdir html <!--創建網站根目錄-->[root@centos01 compose]# echo 'www.nginx.8080.com' > html/index.html <!--寫入主頁測試內容-->[root@centos01 compose]# docker-compose up -d <!--生成容器-->[root@centos01 compose]# docker ps <!--查看容器-->CONTAINER ID IMAGECOMMAND CREATED STATUS PORTS NAMES1428cd1ab7de nginx001 'nginx -g ’daemon of…' About a minute ago Up About a minute 0.0.0.0:8080->80/tcp nginx001a4d71936dd12 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 SIZEnginx001 latest 55b8bd0a4a59 About a minute ago 127MBnginxlatest 9beeba249f3e 5 days ago 127MB[root@centos01 compose]# curl http://192.168.100.10:8080 <!--訪問測試-->www.nginx.8080.com[root@centos01 compose]# docker-compose stop <!--停止容器-->Stopping nginx001 ... done[root@centos01 ~]# docker-compose -f compose/docker-compose.yml up -d <!--通過-f指定.yml文件來運行容器-->Starting nginx001 ... done
3、使用.yml文件搭建博客平臺
[root@centos01 ~]# mkdir wordpress && cd wordpress <!--創建測試目錄-->[root@centos01 wordpress]# vim docker-compose.yml <!--編寫yml文件-->version: ’3.1’ services: wordpress: image: wordpress <!--指定使用的鏡像--> restart: always ports: - 1111:80 <!--指定映射的端口--> environment: <!--修改容器內部的環境變量--> 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訪問數據庫密碼--> MYSQL_DATABASE: wordpress <!--創建wordpress數據庫--> MYSQL_USER: wordpress <!--用戶名字--> MYSQL_PASSWORD: pwd@123 <!--用戶訪問密碼-->[root@centos01 wordpress]# docker-compose up -d <!--生成相應的容器,并在后臺運行-->[root@centos01 wordpress]# docker ps <!-- 查看運行的容器-->CONTAINER ID IMAGECOMMAND CREATED STATUS PORTS NAMESa93858ade399 wordpress 'docker-entrypoint.s…' 28 seconds ago Up 27 seconds 0.0.0.0:1111->80/tcp wordpress_wordpress_1cec94e3bd0ee mysql:5.6 'docker-entrypoint.s…' 28 seconds ago Up 27 seconds 3306/tcpwordpress_mysql_1[root@centos01 wordpress]# docker images <!--查看鏡像-->REPOSITORY TAG IMAGE ID CREATED SIZEmysql5.6 9e4a20b3bbbc 10 hours ago 302MBwordpress latest 675af3ca3193 5 days ago 540MB[root@centos01 wordpress]# netstat -anptu |grep 1111 <!--確定1111端口在監聽-->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
客戶端訪問http://192.168.100.10:1111
設置基礎信息:
安裝完成,登錄:
輸入用戶名密碼:
修改字體為簡體中文:
到此這篇關于安裝Docker.v19和配置Docker Compose編排工具的方法的文章就介紹到這了,更多相關Docker安裝配置Docker Compose 內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
