成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Docker入門(三)使用Docker Compose

weknow619 / 2116人閱讀

摘要:介紹項(xiàng)目是官方的開源項(xiàng)目,負(fù)責(zé)實(shí)現(xiàn)對(duì)容器集群的快速編排。在中你可以使用文件來(lái)配置你的應(yīng)用服務(wù)。然而,在日常工作中,經(jīng)常會(huì)碰到需要多個(gè)容器相互配合來(lái)完成某項(xiàng)任務(wù)的情況。恰好滿足了這樣的需求。打包鏡像涉及到兩個(gè)文件及。

Compose介紹

??Compose 項(xiàng)目是 Docker 官方的開源項(xiàng)目,負(fù)責(zé)實(shí)現(xiàn)對(duì) Docker 容器集群的快速編排。Compose 是一個(gè)用戶定義和運(yùn)行多個(gè)容器的 Docker 應(yīng)用程序。在 Compose 中你可以使用 YAML 文件來(lái)配置你的應(yīng)用服務(wù)。然后,只需要一個(gè)簡(jiǎn)單的命令,就可以創(chuàng)建并啟動(dòng)你配置的所有服務(wù)。

為什么使用Compose

??在Docker鏡像構(gòu)成和定制介紹中,我們可以使用Dockerfile文件很方便定義一個(gè)多帶帶的應(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 恰好滿足了這樣的需求。它允許用戶通過一個(gè)多帶帶的 docker-compose.yml 模板文件(YAML 格式)來(lái)定義一組相關(guān)聯(lián)的應(yīng)用容器為一個(gè)項(xiàng)目(project)。

安裝Compose

??Compose的安裝十分容易,只需要以下命令即可:

pip install docker-compose

為了檢測(cè)Compose是否安裝成功,可以查看Compose的版本信息,如下:

$ docker-compose -version
docker-compose version 1.23.2, build 1110ad0
Compose實(shí)戰(zhàn)

??接下去我們將通過一個(gè)具體的項(xiàng)目來(lái)展示Compose的使用。項(xiàng)目的結(jié)構(gòu)如下:

??對(duì)于項(xiàng)目的Python代碼,我們不再具體講述,有興趣的同學(xué)可移步:https://github.com/percent4/P... 。
??首先我們先打包一個(gè)poem_search鏡像,用于前端運(yùn)行,然后拉取鏡像mongo,最后用Compose將兩個(gè)鏡像打包在一起,共同運(yùn)行。
??打包poem_search鏡像涉及到兩個(gè)文件:poem_search.build及build_poem_search.sh 。其中Dockerfile文件poem_search.build如下:

FROM centos:7.5.1804

# 維護(hù)者
MAINTAINER [email protected]

# 安裝基礎(chǔ)環(huán)境
RUN yum clean all 
    && yum makecache 
    && yum update -y 
    && yum groupinstall -y "Development tools" 
    && yum install -y yum-utils 
    && yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel 
    && yum install -y sqlite-devel readline-devel tk-devel gdbm-devel 
    && yum install -y db4-devel libpcap-devel xz-devel 
    && yum install -y wget gcc gcc-c++ automake autoconf libtool make 
        && yum install -y wget gcc gcc-c++ python-devel mysql-devel bzip2 
    && yum install -y https://centos7.iuscommunity.org/ius-release.rpm 
    && yum install -y python36u 
    && yum install -y python36u-pip 
    && yum install -y python36u-devel 
    && yum clean all

# 安裝Python3.6
RUN cd /usr/bin 
    && mv python python_old 
    && ln -s /usr/bin/python3.6 /usr/bin/python 
    && ln -s /usr/bin/pip3.6 /usr/bin/pip 
    && pip install --upgrade pip

#環(huán)境變量硬編碼及時(shí)區(qū)
ENV ENVIRONMENT production
RUN cd / && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

#安裝Python的第三方模塊
RUN pip3 install pandas -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com 
    && pip3 install pymongo -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com 
    && pip3 install tornado -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com 
    && pip3 install urllib3 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com 
    && pip3 install requests -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com 
    && pip3 install bs4

# 拷貝
COPY ./src /root/poem_search/src

# 工作目錄
WORKDIR /root/poem_search/src

# 暴露端口
EXPOSE 8000

# 執(zhí)行命令
CMD ["python","server.py"]

shell腳本build_poem_search.sh的代碼如下:

tag=$1
# -f 指定文件 , -t 指定生成鏡像名稱 , 冒號(hào)后為版本號(hào),最后的.表示docker_file的上下文環(huán)境
docker build -f poem_search.build -t hub.docker.com/poem_search:test.${tag} .

打包鏡像,并將該鏡像推送至自己的docker hub,命令如下:

./build_poem_search.sh 1111

鏡像打包完后,將其推送至自己的docker hub,具體的命令可以參考文章:Docker入門(一)用hello world入門docker , 如下圖:

接著,拉取MongoDB鏡像:

docker pull mongo

最后,用docker compose將兩個(gè)鏡像組合在一起,其中docker-compose.yml如下:

version: "3.3"

# 定義兩個(gè)服務(wù): poemSearch, mongo
services:
  poemSearch:
    depends_on:
      - mongo
    image: jclian91/poem_search:v1.0_2019.02.20.1745
    container_name: poemSearch
    ports:
      - "8000:8000"
    restart: always
    deploy:
      replicas: 1
    networks:
      - poemSearch

  mongo:
    image: mongo:latest
    container_name: mongo
    deploy:
      replicas: 1
    networks:
      - poemSearch
    ports:
      - "27017:27017"
    volumes:
      - $PWD/db:/data/db
    command: ["mongod"]

#Network
networks:
  poemSearch:

關(guān)于YAML文件的編寫及說(shuō)明,可以參考網(wǎng)址:http://blog.51cto.com/wutengf... 。
??切換至YAML所在文件夾,輸入命令:

docker-compose up -d

輸出的結(jié)果如下:

Creating mongo ... done
Creating poemSearch ... done

這時(shí),在瀏覽器中輸入“http://localhost:8000/query”即可運(yùn)行我們的程序,界面如下:

在其中輸入搜索關(guān)鍵詞,比如“白云”,則會(huì)顯示一條隨機(jī)的結(jié)果,如下:

點(diǎn)擊“查詢?cè)~高亮”,則查詢?cè)~部分會(huì)高亮顯示。

體驗(yàn)Compose

??如果需要體驗(yàn)該項(xiàng)目,則需要以下三個(gè)工具:

git

docker

docker-compose

用git下載該項(xiàng)目,命令如下:

git init
git clone -b v1.2 https://github.com/percent4/Poem-Search.git

然后切換至docker-compose.yml所在路徑,運(yùn)行命令:

docker-compose up -d

即可運(yùn)行該項(xiàng)目,然后在瀏覽器中輸入“http://localhost:8000/query”即可。如需要停止該項(xiàng)目的運(yùn)行,則運(yùn)行命令:

docker-compose down
總結(jié)

??本項(xiàng)目的github地址為https://github.com/percent4/P..., 分支為v1.2 。

注意:本人現(xiàn)已開通微信公眾號(hào): Python爬蟲與算法(微信號(hào)為:easy_web_scrape), 歡迎大家關(guān)注哦~~

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/27675.html

相關(guān)文章

  • docker-compose安裝及簡(jiǎn)單入門

    摘要:編排一組容器的啟停的工具,直接在官方倉(cāng)庫(kù)下載二進(jìn)制文件。啟動(dòng)多任務(wù)只需多增加一個(gè)指定該容器暴露的端口號(hào)用啟動(dòng),用查看啟動(dòng)成功關(guān)閉一組服務(wù)注意要在文件所在的目錄執(zhí)行該命令才可關(guān)閉對(duì)應(yīng)的容器會(huì)停止并刪除容器,網(wǎng)絡(luò)等入門到此結(jié)束 docker-compose 編排一組容器的啟停的工具,直接在官方github倉(cāng)庫(kù)下載二進(jìn)制文件。 安裝 1. 下載docker-compose sudo curl...

    honmaple 評(píng)論0 收藏0
  • Docker入門(二)

    摘要:下面給出了其中幾個(gè)子命令。將指定名稱的容器拉取到系統(tǒng)中。列出正在運(yùn)行的容器。起初只是之上的一個(gè)軟件層但現(xiàn)在已經(jīng)演化成為一個(gè)獨(dú)立的系統(tǒng)。服務(wù)器的主要配置文件位于和參考從構(gòu)建鏡像命令的用法 檢查安裝情況 centos7下 // 刪除舊版本和相關(guān)依賴 yum remove docker docker-client d...

    Airy 評(píng)論0 收藏0
  • 基于Docker的日志分析平臺(tái)() 快速入門

    摘要:是一個(gè)日志收集器,支持非常多的輸入源和輸出源。這個(gè)庫(kù)支持展開文件路徑,而且會(huì)記錄一個(gè)叫的數(shù)據(jù)庫(kù)文件來(lái)跟蹤被監(jiān)聽的日志文件的當(dāng)前讀取位置。 1.Zookeeper 對(duì)于Zookeeper我們用一條簡(jiǎn)單的命令來(lái)測(cè)試一下: echo ruok|nc localhost 2181 你應(yīng)該可以看到: imok 2.Kafka Kafka 是由 Linked 開發(fā)并且開源的一套分布式的流平臺(tái),它類...

    afishhhhh 評(píng)論0 收藏0
  • 聯(lián)調(diào)環(huán)境快速部署——基于docker-compose的CI/CD實(shí)踐

    摘要:三部署架構(gòu)說(shuō)明這個(gè)方案僅適用于小公司敏捷項(xiàng)目團(tuán)隊(duì)聯(lián)調(diào)測(cè)試環(huán)境的部署,同時(shí)也可以作為學(xué)習(xí)入門的,并不適用于有一定規(guī)模的生產(chǎn)環(huán)境。另外,建議把測(cè)試域名泛解析到部署這臺(tái)服務(wù)的機(jī)器。模塊配置部署腳本業(yè)務(wù)模塊的配置基本是通過部署腳本來(lái)操作的。 項(xiàng)目地址: https://github.com/xiongwilee...基本特性: 快捷部署多人nginx+php的開發(fā)測(cè)試環(huán)境,也可以擴(kuò)展構(gòu)建其...

    xiaokai 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<