佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > Docker.v19安裝和配置Docker Compose編排工具的方法

Docker.v19安裝和配置Docker Compose編排工具的方法

熱門標簽:硅谷的囚徒呼叫中心 阿里云 檢查注冊表項 網站建設 百度競價點擊價格的計算公式 美圖手機 使用U盤裝系統 智能手機

一、Compose簡介

Compose是用于定義和運行多容器Docker應用程序的工具。通過Compose,可以使用YAML文件來配置應用程序的服務。然后,使用一個命令,就可以從配置中創(chuàng)建并啟動所有服務。

Docker-Compose是一個容器編排工具。通過一個.yml或.yaml文件,將所有的容器的部署方法、文件映射、容器端口映射等情況寫在一個配置文件里,執(zhí)行docker-compose up命令就像執(zhí)行腳本一樣,一個一個的安裝并部署容器。

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:   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   <!--啟動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 -v
Docker version 19.03.9, build 9d988398e7

如果docker版本過低,可以自行查找其他版本的docker-compose工具。選擇合適的版本之后,執(zhí)行在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中的版本,可以自定義您的需要的版本。執(zhí)行上面的兩條命令后,我們就可以使用docker-compose這個編排工具了。

四、編寫.yml文件

1、.yml文件構建簡單的Nginx服務

[root@centos01 ~]# vim /root/.vimrc
set tabstop=2
[root@centos01 ~]# source /root/.vimrc
<!--由于tab鍵使用的較多,所以事先設置了一個tab鍵代表兩個空格數-->
[root@centos01 ~]# mkdir docker_compose 
    <!--創(chuàng)建一個測試目錄,用于存放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    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)建測試網頁-->
[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    IMAGE        COMMAND       CREATED       STATUS       PORTS        NAMES
[root@centos01 ~]# docker-compose -f docker_compose/docker-compose.yml up -d
<!--可以使用“-f”選項來指定yml文件啟動文件中定義的容器-->

2、compose+dockerfile構建鏡像

[root@centos01 ~]# mkdir compose && cd compose <!--創(chuàng)建一個測試目錄并進入-->
[root@centos01 compose]# vim Dockerfile   <!--創(chuàng)建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    <!--創(chuàng)建網站根目錄-->
[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    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   <!--訪問測試-->
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 <!--創(chuàng)建測試目錄-->
[root@centos01 wordpress]# vim docker-compose.yml  <!--編寫yml文件-->
version: '3.1' 
services:
 wordpress:
  image: wordpress      <!--指定使用的鏡像-->
  restart: always
  ports:
   - 1111:80    <!--指定映射的端口-->
  environment:       <!--修改容器內部的環(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訪問數據庫密碼-->
   MYSQL_DATABASE: wordpress     <!--創(chuàng)建wordpress數據庫-->
   MYSQL_USER: wordpress      <!--用戶名字-->
   MYSQL_PASSWORD: pwd@123     <!--用戶訪問密碼-->
[root@centos01 wordpress]# docker-compose up -d <!--生成相應的容器,并在后臺運行-->
[root@centos01 wordpress]# docker ps  <!-- 查看運行的容器-->
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

客戶端訪問http://192.168.100.10:1111

設置基礎信息:

安裝完成,登錄:

輸入用戶名密碼:

修改字體為簡體中文:

到此這篇關于安裝Docker.v19和配置Docker Compose編排工具的方法的文章就介紹到這了,更多相關Docker安裝配置Docker Compose 內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

標簽:煙臺 懷化 山南 賀州 湘潭 湖北 通遼 黃山

巨人網絡通訊聲明:本文標題《Docker.v19安裝和配置Docker Compose編排工具的方法》,本文關鍵詞  ;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    无极县| 平安县| 鹤山市| 大关县| 大荔县| 龙州县| 肥东县| 金溪县| 卓资县| 鱼台县| 唐山市| 枝江市| 巴林右旗| 炎陵县| 共和县| 天镇县| 瑞金市| 大厂| 古交市| 兴宁市| 武隆县| 香港| 平江县| 韶山市| 十堰市| 奉节县| 青浦区| 四平市| 通州区| 班玛县| 东至县| 岢岚县| 革吉县| 河南省| 文安县| 墨竹工卡县| 屏山县| 密云县| 永和县| 宜兴市| 成武县|