最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker中的compose簡(jiǎn)介

 更新時(shí)間:2023年02月14日 11:11:04   作者:辛辣天蝎666  
Docker?Compose?是?Docker?官方編排(Orchestration)項(xiàng)目之一,負(fù)責(zé)快速在集群中部署分布式應(yīng)用,這篇文章主要介紹了Docker之compose介紹,需要的朋友可以參考下

Docker Compose 是什么

Docker Compose 是 Docker 官方編排(Orchestration)項(xiàng)目之一,負(fù)責(zé)快速在集群中部署分布式應(yīng)用。

Compose 定位是 「定義和運(yùn)行多個(gè) Docker 容器的應(yīng)用(Defining and running multicontainer Docker applications)」,其前身是開源項(xiàng)目 Fig。

Compose 中有兩個(gè)重要的概念

  • 服務(wù) ( service ):一個(gè)應(yīng)用的容器,實(shí)際上可以包括若干運(yùn)行相同鏡像的容器實(shí)例。
  • 項(xiàng)目 ( project ):由一組關(guān)聯(lián)的應(yīng)用容器組成的一個(gè)完整業(yè)務(wù)單元,在 dockercompose.yml 文件中定義。

Docker Compose 作用

Docker Compose 提供以下命令來(lái)管理應(yīng)用程序的整個(gè)生命周期:

  • 1、啟動(dòng),停止和重建服務(wù)。
  • 2、查看運(yùn)行服務(wù)的狀態(tài)。
  • 3、流式運(yùn)行服務(wù)的日志輸出。
  • 4、在服務(wù)上運(yùn)行一次性命令。

前言

使用一個(gè)Dockerfile模板文件可以定義一個(gè)單獨(dú)的應(yīng)用容器,如果需要定義多個(gè)容器就需要服務(wù)編排。下面介紹Docker官方產(chǎn)品,Docker Compose。
Dockerfile可以讓用戶管理一個(gè)單獨(dú)的應(yīng)用容器,而compose則允許用戶在一個(gè)模板(yaml格式)中定義一組相關(guān)聯(lián)的應(yīng)用容器(被稱為一個(gè)project,即項(xiàng)目)
例如一個(gè)web服務(wù)再加上后端的數(shù)據(jù)庫(kù)服務(wù)容器等。

一、Docker-compose簡(jiǎn)介

1、docker-compose基礎(chǔ)概念

docker-compose項(xiàng)目是docker官方的開源項(xiàng)目, 負(fù)責(zé)實(shí)現(xiàn)對(duì)docker容器集群的快速編排。

docker-compose將所管理的容器分為三層, 分別是工程(project),服務(wù)(service)以及容器(containner)

  • docker-compose運(yùn)行目錄下的所有文件(docker-compose.yml文件、extends文件或環(huán)境變量等)組成一個(gè)工程,如無(wú)特殊指定,工程名即為當(dāng)前目錄名。
  • 一個(gè)工程當(dāng)中,可以包含多個(gè)服務(wù),每個(gè)服務(wù)中定義了容器運(yùn)行的鏡像、參數(shù)、依賴。
  • 一個(gè)服務(wù)中可以包括多個(gè)容器實(shí)例,docker-compose并沒(méi)有解決負(fù)載均衡的問(wèn)題。因此需要借助其他工具實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)及負(fù)載均衡,比如consul。

docker-compose的工程配置文件默認(rèn)為docker-compose.yml??梢酝ㄟ^(guò)環(huán)境變量COMPOSE_FILE -f 參數(shù)自定義配置文件,其自定義多個(gè)有依賴關(guān)系的服務(wù)及每個(gè)人服務(wù)運(yùn)行的容器。

2、為什么要使用docker-compose

使用一個(gè)Dockerfile模板文件,可以讓用戶很方便的定義一個(gè)單獨(dú)應(yīng)用容器。在工作中,經(jīng)常會(huì)碰到需要多個(gè)容器相互配合來(lái)完成某項(xiàng)任務(wù)的情況,例如要實(shí)現(xiàn)一個(gè)web項(xiàng)目,除了web服務(wù)容器本身,往往還需要再加上后端的數(shù)據(jù)庫(kù)服務(wù)容器,甚至還包括負(fù)載均衡容器等。
compose允許用戶通過(guò)一個(gè)單獨(dú)docker-compose.yml模板文件(YAML格式)來(lái)定義一組相關(guān)聯(lián)的應(yīng)用容器為一個(gè)項(xiàng)目(project)

docker-compose項(xiàng)目由pypthon編寫,調(diào)用docker服務(wù)提供的API來(lái)對(duì)容器進(jìn)行管理,因此, 只要所操作的平臺(tái)支持docker-API,就可以在其上利用conpose來(lái)進(jìn)行編排管理。
簡(jiǎn)單來(lái)說(shuō):就是來(lái)管理多個(gè)容器的,定義啟動(dòng)順序的,合理編排,方便管理。

二、YAML文件格式及編寫注意事項(xiàng)

1、YAML文件格式

  • YAML是一種標(biāo)記性語(yǔ)言,它可以很直觀的展示數(shù)據(jù)序列化格式,可讀性高。
  • 類似于json數(shù)據(jù)描述語(yǔ)言,但是語(yǔ)法要比json簡(jiǎn)單很多。
  • YAML數(shù)據(jù)結(jié)構(gòu)通過(guò)縮進(jìn)來(lái)表示,連續(xù)的項(xiàng)目通過(guò)減號(hào)來(lái)表示,鍵值對(duì)用冒號(hào)分隔,數(shù)組用中括號(hào)[ ] 括起來(lái),bash用花括號(hào){ } 括起來(lái)。

2、YAML格式的注意事項(xiàng)

  • 不支持制表符tab鍵縮進(jìn),只能使用空格縮進(jìn)
  • 通常開頭縮進(jìn)2個(gè)空格
  • 字符后縮進(jìn)1個(gè)空格,如冒號(hào)【:】、逗號(hào)【,】、橫杠【-】
  • 用#號(hào)表示注釋
  • 如果包含特殊字符用單引號(hào)【’ '】引起來(lái)作為普通字符,如果用雙引號(hào)【“ ”】表示特殊字符本身的意思,
  • 布爾值必須用【“ ”】括起來(lái)
  • YAML區(qū)分大小寫

3、YAML數(shù)據(jù)結(jié)構(gòu)案例

#鍵值對(duì)表示
animal:pets

#數(shù)組:一組按次序排列的列表
- cat
- dog
- goldfish

#布爾值
debug: "true"
debug: "false"

#yaml實(shí)例
languages:        #序列的映射 
  - java
  - Golang
  - Python
websites:         #映射的映射
  Baidu: www.baidu.com
  Wangyi: www.163.com
  Souhu: www.souhu.com

#或者
languages: ["java","Golong","Python"]
websites:
  Baidu:
    www.baidu.com
  Wangyi:
    www.163.com
  Souhu:
    www.souhu.com

#Json格式
{
  languages: [
    'Java',
    'Golong',
    'Python',
  ],
  websites: [
    Baidu: 'www.baidu.com',
    Wangyi: 'www.163.com',
    Souhu: 'www.souhu.com',
  ]
}

三、Docker Compose 配置常用字段

1、Docker Compose配置常用字段

字段描述
build指定Dockerfile文件名(要指定的Dockerfile文件需要在build標(biāo)簽的子級(jí)標(biāo)簽中用dockefile標(biāo)簽指定)
dockerfile構(gòu)建鏡像上下文路徑
context可以是dockerfile路徑,或者時(shí)執(zhí)行g(shù)it倉(cāng)庫(kù)的url地址
images指定鏡像(已存在)
command執(zhí)行命令,會(huì)覆蓋容器啟動(dòng)后默認(rèn)執(zhí)行的命令(會(huì)覆蓋dockefile中的CMD指令)
container_name指定容器名稱,由于容器名稱是唯一的,如果指定自定義名稱,則無(wú)法scale指定容器數(shù)量。
deploy指定部署和運(yùn)行服務(wù)相關(guān)配置,只能在swarm模式使用
environment添加環(huán)境變量
networks加入網(wǎng)絡(luò),引用頂級(jí)networks下條目
network-mode設(shè)置容器的網(wǎng)絡(luò)模式
ports暴露容器端口,與-p相同,但是端口不能低于60
volumes掛載一個(gè)宿主機(jī)目錄或命令卷到容器,命令卷要在頂級(jí)volumes定義卷名稱
volumes_from從另一個(gè)服務(wù)或容器掛載卷,可選參數(shù):ro和rw(僅版本‘2’支持)
hostname在容器內(nèi)設(shè)置內(nèi)核參數(shù)
links連接誒到另一個(gè)容器,- 服務(wù)名稱[ : ]
privileged用來(lái)給容器root權(quán)限,注意是不安全的,true
restart重啟策略,定義是否重啟容器1、no,默認(rèn)策略,在容器退出時(shí)不重啟容器2、on-failure,在容器非正常退出時(shí)(退出狀態(tài)非0),才會(huì)重啟容器3、on-failure:3 在容器非正常退出時(shí),重啟容器,最多重啟3次4、always,在容器退出時(shí)總是重啟容器,5、unless-stopped,在容器退出時(shí)總是重啟容器,但是不考慮在Docker守護(hù)進(jìn)程啟動(dòng)時(shí)就已經(jīng)停止了的容器。
depends_on此標(biāo)簽用于解決容器的依賴,啟動(dòng)先后問(wèn)題。如啟動(dòng)應(yīng)用容器,需要先啟動(dòng)數(shù)據(jù)庫(kù)容器。php:depends_on:- apache- mysql

2、Docker-compose常用命令

運(yùn)行這些命令需要結(jié)合docker-compose一起使用。

且必須要在含有docker-compose.yml文件的目錄中才可以使用,不然報(bào)錯(cuò)。

命令描述
build重新構(gòu)建服務(wù)
ps列出容器
up創(chuàng)建和啟動(dòng)容器
exec在容器里面執(zhí)行命令
scale指定一個(gè)服務(wù)容器啟動(dòng)數(shù)量
top顯示正在運(yùn)行的容器進(jìn)程
logs查看服務(wù)容器的輸出
down刪除容器、網(wǎng)絡(luò)、數(shù)據(jù)卷和鏡像
stop/start/restart停止/啟動(dòng)/重啟服務(wù)

四、docker-compose安裝

docker-compose是docker的獨(dú)立產(chǎn)品,因此需要安裝docker之后再單獨(dú)安裝docker compose。

curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
#下載docker-compose文件

mv docker-compose /usr/local/bin
#將文件復(fù)制到/usr/local/bin環(huán)境變量下面

chmod +x /usr/local/bin/docker-compose
#給他一個(gè)執(zhí)行權(quán)限

五、docker-compose部署nginx服務(wù)訪問(wèn)自定義頁(yè)面

1、準(zhǔn)備依賴文件

 mkdir /root/compose_nginx yum install -y tree vim /root/compose_nginx/docker-compose.yml version: '3' services: nginx: hostname: nginx build: context: ./nginx dockerfile: Dockerfile ports: - 1216:80 - 1217:443 networks: - cluster volumes: - ./wwwroot:/usr/local/nginx/html networks: cluster:

 [root@docker compose_nginx]# vim /root/compose_nginx/docker-compose.yml
[root@docker compose_nginx]# ls
docker-compose.yml
[root@docker compose_nginx]# mkdir nginx
[root@docker compose_nginx]# mkdir wwwroot
[root@docker compose_nginx]# ls
docker-compose.yml  nginx  wwwroot
[root@docker compose_nginx]# echo "liyong xuexijiugenwanyiyang" > wwwroot/index.html
[root@docker compose_nginx]# cat wwwroot/index.html 
liyong xuexijiugenwanyiyang
[root@docker compose_nginx]# cd nginx
[root@docker nginx]# ls
[root@docker nginx]# rz -E
rz waiting to receive.
[root@docker nginx]# ls
nginx-1.20.2.tar.gz

mkdir -p /opt/compose_nginx/nginx

cd /opt/compose_nginx/nginx
#上傳nginx的包

vim Dockerfile

FROM centos:7
RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make &> /dev/null
RUN useradd -M -s /sbin/nologin nginx
ADD nginx-1.15.9.tar.gz /usr/local/src
WORKDIR /usr/local/src/nginx-1.15.9
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module &> /dev/null
RUN make -j 4 && make install &> /dev/null
RUN ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
#ENV PATH /usr/local/nginx/sbin/:PATH
EXPOSE 80
EXPOSE 443
RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf
CMD ["/usr/local/nginx/sbin/nginx"]

2、編寫配置文件docker-compose.yml文件

cd /opt/compose_nginx

vim docker-compose.yml

version: '3'   #定義編排版本,共3版(1,2,3),1被淘汰,2的話只能單機(jī)編排,3的話即可以實(shí)現(xiàn)單機(jī)編排,也可以實(shí)現(xiàn)多機(jī)編排。
services:     #定義服務(wù)
  nginx:      #定義nginx服務(wù)
    hostname: nginx      #容器的主機(jī)名為nginx
    build:               #定義創(chuàng)建容器的過(guò)程 //如果有線程的鏡像,直接寫images: 
      context: ./nginx   #指定創(chuàng)建容器的目錄位置(存儲(chǔ)dockerfile的目錄)
      dockerfile: Dockerfile   #指定Dockerfile文件
    ports:            #定義端口
      - 1234:80       #暴露端口
      - 4321:443      #暴露端口
    networks:                      #指定網(wǎng)絡(luò)
      ydq:                         #指定網(wǎng)絡(luò)名稱
        ipv4_address: 172.100.0.10  #指定ip地址
    volumes:                                 #數(shù)據(jù)卷,掛載目錄
      - ./wwwroot:/usr/local/nginx/html      #前面宿主機(jī),后面容器
networks:               #自定義網(wǎng)絡(luò)
  ydq:                  #自定義網(wǎng)絡(luò)名稱
   driver: bridge       #自定義網(wǎng)絡(luò)模式
   ipam:                #網(wǎng)絡(luò)管理器
     config:            #配置參數(shù)
       - subnet: 172.100.0.0/16    #配置子網(wǎng)網(wǎng)段 
       
//networks的參數(shù)ipam即網(wǎng)絡(luò)管理,其下還有driver參數(shù)即指定使用的網(wǎng)絡(luò)模式,以及config配置參數(shù)(比如配置子網(wǎng)等)
       
echo "this is ydq" >/opt/compose_nginx/wwwroot/index.html

3、生成鏡像容器

4、查看目錄結(jié)構(gòu)

yum -y install tree &>/dev/null

cd /opt/compose_nginx
tree

docker-compose -f docker-compose.yaml up -d  //-f調(diào)用文件。-d:開啟守護(hù)進(jìn)程

docker network ls
docker ps -a
docker-compose ps

5、訪問(wèn)測(cè)試

curl 192.168.100.3:1234

或者

網(wǎng)頁(yè)訪問(wèn):http:192.168.100.3:1234

到此這篇關(guān)于Docker之compose介紹的文章就介紹到這了,更多相關(guān)Docker之compose介紹內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker?安裝部署多個(gè)MySQL的實(shí)現(xiàn)步驟

    docker?安裝部署多個(gè)MySQL的實(shí)現(xiàn)步驟

    本文主要介紹了docker?安裝部署多個(gè)MySQL的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Docker中安裝和配置Apache Pulsar實(shí)現(xiàn)

    Docker中安裝和配置Apache Pulsar實(shí)現(xiàn)

    本文介紹了在Docker中安裝和配置Apache Pulsar集群,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • docker容器間的互聯(lián)問(wèn)題

    docker容器間的互聯(lián)問(wèn)題

    這篇文章主要介紹了docker容器間的互聯(lián)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 使用Docker構(gòu)建一個(gè)Git鏡像使用clone倉(cāng)庫(kù)

    使用Docker構(gòu)建一個(gè)Git鏡像使用clone倉(cāng)庫(kù)

    這篇文章主要介紹了使用Docker構(gòu)建一個(gè)Git鏡像使用clone倉(cāng)庫(kù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 第一次構(gòu)建、運(yùn)行、發(fā)布、獲取docker鏡像的步驟詳解

    第一次構(gòu)建、運(yùn)行、發(fā)布、獲取docker鏡像的步驟詳解

    今天小編就為大家分享一篇關(guān)于第一次構(gòu)建、運(yùn)行、發(fā)布、獲取docker鏡像的步驟詳解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • 一些常見的精簡(jiǎn)Docker?file規(guī)則總結(jié)

    一些常見的精簡(jiǎn)Docker?file規(guī)則總結(jié)

    這篇文章主要介紹了一些常見的精簡(jiǎn)Docker?file規(guī)則的相關(guān)資料,這些精簡(jiǎn)規(guī)則有助于優(yōu)化Dockerfile,生成更高效、簡(jiǎn)潔的鏡像,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-11-11
  • dubbo服務(wù)引用創(chuàng)建Invoker代理對(duì)象

    dubbo服務(wù)引用創(chuàng)建Invoker代理對(duì)象

    這篇文章主要為大家介紹了dubbo服務(wù)引用創(chuàng)建Invoker代理對(duì)象示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Docker安裝Redis最新圖文教程(非常全)

    Docker安裝Redis最新圖文教程(非常全)

    Redis是一個(gè)開源的使用ANSI C語(yǔ)言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value的NoSQL數(shù)據(jù)庫(kù),這篇文章主要給大家介紹了關(guān)于Docker安裝Redis的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • 詳解Docker Compose配置文件參數(shù)

    詳解Docker Compose配置文件參數(shù)

    Compose是一個(gè)用于定義和運(yùn)行多容器Docker的工具,本文主要介紹了Docker Compose配置文件參數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • docker上快速搭建gitlab、gitlab-runer及實(shí)現(xiàn)CI/CD功能

    docker上快速搭建gitlab、gitlab-runer及實(shí)現(xiàn)CI/CD功能

    這篇文章主要介紹了docker上快速搭建gitlab、gitlab-runer及實(shí)現(xiàn)CI/CD,本文給大家講解的非常詳細(xì),包括docker上安裝gitlab的相關(guān)操作及配置root賬號(hào)密碼,需要的朋友可以參考下
    2022-04-04

最新評(píng)論

左权县| 松滋市| 游戏| 庆安县| 辉县市| 缙云县| 宁乡县| 平阳县| 江门市| 天台县| 兴义市| 夹江县| 永城市| 天祝| 张掖市| 蕉岭县| 扎兰屯市| 石家庄市| 泽库县| 正安县| 九江市| 镇原县| 浦江县| 玉环县| 织金县| 江城| 阳信县| 高尔夫| 昭通市| 郯城县| 龙胜| 乡宁县| 景德镇市| 昌乐县| 合川市| 太和县| 扶风县| 凤阳县| 舞阳县| 遵义市| 台北市|