国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

為項(xiàng)目配置docker

qiangdada / 2279人閱讀

摘要:和首先,在以往的項(xiàng)目中,都是使用的形式來配置的,所以,首先就需要了解這兩者的關(guān)系。完整配置文件版本號服務(wù)官方參考

之前就了解過docker,但是一直沒有自己配置過docker。這次自己為項(xiàng)目配置了一下docker,在這里做一下總結(jié)記錄。

Dockerfile和docker-compose

首先,在以往的項(xiàng)目中,都是使用DockerFile + docker-compose的形式來配置docker的,所以,首先就需要了解這兩者的關(guān)系。

我們要知道的是,如果我們只使用dockerfile就可以完成對docker的鏡像配置。那么,為什么我們還要使用docker-compose呢?

最開始是這樣的,我們只是用docker中的一些命令,就可以實(shí)現(xiàn)配置一個(gè)鏡像。但是這是有問題的:不能保存。所以就是用dockerfile將創(chuàng)建鏡像的過程記錄下來,然后我們只需要使用:

docker build

就可以創(chuàng)建一個(gè)鏡像。

現(xiàn)在問題又來了:我想創(chuàng)建一個(gè)完整的項(xiàng)目,光是有一個(gè)鏡像是不夠的,比如我們的項(xiàng)目中就需要使用nginxmysqlredis才能夠啟動(dòng)項(xiàng)目。

雖然我們也可以考慮使用一個(gè)dockerfile,然后寫成一個(gè)鏡像,但是這就不可復(fù)用了。所以更加合理的做法應(yīng)該是我們分別為nginxmysqlredis創(chuàng)建一個(gè)鏡像,然后將這些鏡像結(jié)合起來使用。

docker-compose就是幫我們實(shí)現(xiàn)這個(gè)問題的。

所以,總結(jié)來說,dockerfile是用來創(chuàng)建單個(gè)鏡像的,而docker-compose是用來創(chuàng)建一個(gè)項(xiàng)目的。

Dockerfile

首先先說一下Dockerfile的創(chuàng)建。在這個(gè)項(xiàng)目中,我們只寫了一條語句:

FROM registry.cn-beijing.aliyuncs.com/mengyunzhi/nginx:1.13.12

FROM是第一條命令,并且是必須的一條命令,它指定了基礎(chǔ)鏡像。

在這里,我們使用的基礎(chǔ)鏡像是托管在阿里docker倉庫中的鏡像。

我們也可以從docker官方倉庫中獲取鏡像:

FROM nginx:1.13.12

但是有可能在拉取鏡像的時(shí)候比較慢。

docker-compose

docker-compose我們通過配置docker-compose.yml來實(shí)現(xiàn)。

聲明版本
version: "3"

這是聲明我們要使用哪種版本的語法的,不同版本的略有差異。

聲明服務(wù)

按照我們上面所說,需要nginxmysqlredis三個(gè)鏡像,也就是需要三個(gè)服務(wù):

services:
  alice.mysql:

  alice.nginx:

  alice.redis:

然后我們以mysql為例,說明需要哪些命令來構(gòu)建service。

首先我們要使用上面創(chuàng)建的Dockerfile,對獲取的鏡像進(jìn)行構(gòu)建(build)。

services:
  alice.mysql:
    build:
      context: ./mysql

context選項(xiàng)指定了基礎(chǔ)鏡像。

然后就是image

services:
  alice.mysql:
    build:
      context: ./mysql
    image: mysql:5.7

image指定了服務(wù)使用的鏡像名,這個(gè)在我們沒有上面的構(gòu)建命令(build)時(shí),會(huì)先找本地是否有對應(yīng)的鏡像,如果沒有,compose會(huì)嘗試?yán)$R像。

端口(ports):

services:
  alice.mysql:
    build:
      context: ./mysql
    image: mysql:5.7
    ports:
      - "3309:3306"

將docker容器的3306端口映射到本地的3309端口。

環(huán)境(environment):

services:
  alice.mysql:
    build:
      context: ./mysql
    image: mysql:5.7
    ports:
      - "3309:3306"
    environment:
      - MYSQL_USER=root
      - MYSQL_PASSWORD=
      - MYSQL_ALLOW_EMPTY_PASSWORD=true
      - MYSQL_DATABASE=alice

其實(shí)我更喜歡將這一部分叫做環(huán)境變量,因?yàn)檫@部分是用來定義變量的。

最后,因?yàn)槲覀兪且獙⒍鄠€(gè)服務(wù)結(jié)合起來,使項(xiàng)目運(yùn)行的,所以就需要各個(gè)容器間進(jìn)行通信。所以就需要使用網(wǎng)絡(luò)(networks)進(jìn)行配置,將各個(gè)服務(wù)放在同一個(gè)局域網(wǎng)下:

services:
  alice.mysql:
    build:
      context: ./mysql
    image: mysql:5.7
    ports:
      - "3309:3306"
    environment:
      - MYSQL_USER=root
      - MYSQL_PASSWORD=
      - MYSQL_ALLOW_EMPTY_PASSWORD=true
      - MYSQL_DATABASE=alice
    networks:
      aliceNetwork:
        ipv4_address: 172.28.8.4

這里使用了ipv4_address為其分配了一個(gè)靜態(tài)IP地址。

聲明網(wǎng)絡(luò)

上面我們使用了網(wǎng)絡(luò),那是為服務(wù)定義網(wǎng)絡(luò),其實(shí)在這之前,我們還需要定義一個(gè)自己的網(wǎng)絡(luò):

networks:
  aliceNetwork:
    ipam:
      config:
        - subnet: 172.28.8.0/24

這里聲明了一個(gè)子網(wǎng)段,所以可以看到上面mysql的網(wǎng)絡(luò)是172.28.8.4這種形式,其實(shí)只是從這個(gè)網(wǎng)段中隨便選了一個(gè)。

完整配置文件:

# 版本號
version: "3"

# 服務(wù)
services:
  alice.mysql:
    build:
      context: ./mysql
    image: mysql:5.7
    ports:
      - "3309:3306"
    environment:
      - MYSQL_USER=root
      - MYSQL_PASSWORD=
      - MYSQL_ALLOW_EMPTY_PASSWORD=true
      - MYSQL_DATABASE=alice
    networks:
      aliceNetwork:
        ipv4_address: 172.28.8.4

  alice.nginx:
    build:
      context: ./nginx
    image: nginx:1.13.12
    volumes:
      - ./:/etc/nginx/conf.d
      - ./app:/usr/local/app
    ports:
      - 9000:80
      - 9001:81
    networks:
      aliceNetwork:
        ipv4_address: 172.28.8.3

  alice.redis:
    build:
      context: ./redis
    image: redis:alpine
    ports:
      - "6380:6379"
    networks:
      aliceNetwork:
        ipv4_address: 172.28.8.5

networks:
  aliceNetwork:
    ipam:
      config:
        - subnet: 172.28.8.0/24

官方參考:
https://docs.docker.com/compo...
https://hub.docker.com/_/nginx

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/27707.html

相關(guān)文章

  • Docker相關(guān)的項(xiàng)目

    摘要:相關(guān)基于項(xiàng)目和項(xiàng)目,并遵循應(yīng)用的十二因素風(fēng)格。相關(guān)在設(shè)計(jì)上,項(xiàng)目盡量保持驅(qū)動(dòng)和模塊化,以便模塊支持不同的實(shí)現(xiàn)方案。相關(guān)不僅可以管理眾多虛擬機(jī),其計(jì)算服務(wù)還支持對的驅(qū)動(dòng),管理引擎的子項(xiàng)目還可用于通過模板管理容器。現(xiàn)已整合公司所支持的項(xiàng)目。 整理自《Docker技術(shù)入門與實(shí)踐》 PaaS(Platform as a Service) PaaS 是希望提供一個(gè)統(tǒng)一的可供所有軟件直接運(yùn)行而無需...

    littlelightss 評論0 收藏0
  • Docker 中運(yùn)行 Laravel 項(xiàng)目

    摘要:本篇承接使用構(gòu)建環(huán)境,介紹如何在該文所用的容器中運(yùn)行項(xiàng)目。接下來可以新建一個(gè)項(xiàng)目或是通過轉(zhuǎn)移項(xiàng)目。從上同步項(xiàng)目一般服務(wù)器中運(yùn)行的項(xiàng)目都是在本地開發(fā)完成后同步上去的。生成文件文件含有項(xiàng)目所需的配置以及用于加密解密的隨機(jī)字符串。 本篇承接 使用 Docker 構(gòu)建 LNMP 環(huán)境,介紹如何在該文所用的容器中運(yùn)行 Laravel 項(xiàng)目。主要步驟為:轉(zhuǎn)移 Laravel 項(xiàng)目到數(shù)據(jù)卷 => 配...

    luxixing 評論0 收藏0
  • [手把手系列之]Docker 部署 vue 項(xiàng)目

    摘要:部署項(xiàng)目寫在前面作為輕量級虛擬化技術(shù),擁有持續(xù)集成版本控制可移植性隔離性和安全性等優(yōu)勢。容器可以被創(chuàng)建啟動(dòng)停止刪除暫停等。重新運(yùn)行應(yīng)用容器直接基于鏡像來啟動(dòng)容器,運(yùn)行命令將宿主機(jī)的掛載到容器的目錄上。Docker 部署 vue 項(xiàng)目 1.寫在前面: Docker 作為輕量級虛擬化技術(shù),擁有持續(xù)集成、版本控制、可移植性、隔離性和安全性等優(yōu)勢。本文使用Docker來部署一個(gè)vue的前端應(yīng)用,并盡...

    VPointer 評論0 收藏0
  • Node項(xiàng)目的Gitlab自動(dòng)部署實(shí)踐(基于Docker

    摘要:只要的項(xiàng)目有提交,相關(guān)就根據(jù)來決定是否跑自動(dòng)部署的命令。項(xiàng)目的自動(dòng)部署添加執(zhí)行的注冊命令,按照說明進(jìn)行參數(shù)配置。至此,和服務(wù)都已經(jīng)自動(dòng)部署完成。 準(zhǔn)備工作 說明 公司最近準(zhǔn)備了一臺新的開發(fā)服務(wù)器,正好用以實(shí)踐docker的基本應(yīng)用。docker的好處不再贅述,詳情可參考阮一峰的這篇入門。(關(guān)于Docker最好的中文介紹,沒有之一)。 公司目前主要使用了EggJs + ReactJS的技...

    oysun 評論0 收藏0
  • 使用Docker部署Spring-Boot+Vue博客系統(tǒng)

    摘要:先來看一下容器的文件中間一些操作省略這里用了多階段構(gòu)建容器,如果直接通過設(shè)置環(huán)境變量只會(huì)在后面一個(gè)階段生效,但是是在第一個(gè)階段執(zhí)行的,所以環(huán)境變量不能應(yīng)用到當(dāng)中。 在今年年初的時(shí)候,完成了自己的個(gè)Fame博客系統(tǒng)的實(shí)現(xiàn),當(dāng)時(shí)也做了一篇博文Spring-boot+Vue = Fame 寫blog的一次小結(jié)作為記錄和介紹。從完成實(shí)現(xiàn)到現(xiàn)在,也斷斷續(xù)續(xù)的根據(jù)實(shí)際的使用情況進(jìn)行更新。 只不過每...

    Eirunye 評論0 收藏0

發(fā)表評論

0條評論

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