Teknologian jakaminen

【Docker-compose】Rakenna php-ympäristö

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Docker-sävellyskonttiorkesteri

1. Mikä on

Compose on Docker Companyn käynnistämä työkaluohjelmisto, joka voi hallita useita Docker-säiliöitä sovelluksen muodostamiseksi. Sinun on määritettävä asetustiedosto docker-compose.yml YAML-muodossa ja kirjoitettava kutsusuhteet useiden säilöjen välillä.Sitten yhdellä komennolla voit käynnistää/pysäyttää nämä säilöt samanaikaisesti

  • · Docker-Compose on Dockerin virallinen avoimen lähdekoodin projekti, joka vastaa Dockerin konttiklustereiden nopean organisoinnin toteuttamisesta.

2. Mitä voit tehdä?

Docker suosittelee, että käytämme vain yhtä palvelua jokaisessa säilössä. Koska telakointikontti vie vain vähän resursseja, on parasta erottaa jokainen palvelu erikseen.

Jos minun on otettava käyttöön useita palveluita samanaikaisesti, pitääkö minun kirjoittaa erillinen Docker-tiedosto jokaiselle palvelulle ja rakentaa sitten kuva ja säilö. Tämä on uuvuttavaa, joten Docker tarjoaa meille virallisesti Docker-compose-monipalvelun käyttöönottotyökalun? .

Esimerkiksi Web-mikropalveluprojektin toteuttamiseksi on usein tarpeen lisätä itse web-palvelukontin lisäksi taustatietokanta mysql-palvelukontti, redis-palvelin, rekisteröintikeskus eureka ja jopa kuormantasaussäiliöt jne. . . . . .

Compose-toiminnon avulla käyttäjät voivat määrittää joukon liittyviä sovellussäilöjä projektiksi erillisen docker-compose.yml-mallitiedoston (YAML-muoto) kautta.

Voit helposti määrittää monisäilösovelluksen määritystiedoston avulla ja asentaa sitten kaikki sovelluksen riippuvuudet yhdellä komennolla ja viimeistellä koontiversion. Docker-Compose ratkaisee konttien hallinnan ja organisoinnin ongelman.

3. Minne mennä

  • Virallinen verkkosivusto · https://docs.docker.com/compose/compose-file/compose-file-v3/
  • https://docs.docker.com/compose/install/

Nopeutettu latausosoite

sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  • 1

Lisää suoritettavat oikeudet

chmod +x /usr/local/bin/docker-compose
  • 1

Tarkista, onko asennus onnistunut

docker-compose --version
  • 1
  • poista asennus

    sudo rm / usr/ local/ bin/docker-compose
    
    • 1

4. Laadi ydinkäsitteet

  • Kolme vaihetta kirjoittamiseen

    Kirjoita Dockerfile määrittääksesi jokainen mikropalvelusovellus ja rakentaaksesi vastaava kuvatiedosto

    Docker-compose.yml:n avulla voit määrittää täydellisen liiketoimintayksikön ja järjestää erilaisia ​​konttipalveluita koko sovelluksessa.

    Suorita lopuksi docker-compose up -komento käynnistääksesi ja ajaaksesi koko sovelluksen suorittaaksesi yhden napsautuksen käyttöönoton ja siirtyäksesi verkkoon.

  • Luo yleisiä komentoja

    docker-compose -h # Näytä ohje

    docker-compose up # Käynnistä kaikki docker-compose-palvelut

    docker-compose up -d # Käynnistä kaikki docker-compose-palvelut ja suorita ne taustalla

    docker-compose down # Pysäytä ja poista säilöt, verkot, taltiot ja kuvat.

    Docker-compose exec yml:n palvelutunnus # Syötä säilön ilmentymän sisään

    docker-compose exec docker-compose.yml tiedosto kirjallinen palvelutunnus /bin/bash

    docker-compose ps # Näytä kaikki käynnissä olevat säilöt, jotka docker-compose tällä hetkellä ohjaa

    docker-compose alkuun # Näytä nykyiset docker-composen organisoimat konttiprosessit

    Palvelutunnus docker-compose lokeissa yml # Näytä säilön tulostusloki

    docker-compose config # Tarkista asetukset

    docker-compose config -q # Tarkista kokoonpano ja tulos vain, jos on ongelmia

    docker-compose restart # Käynnistä palvelu uudelleen

    docker-compose aloitus # Käynnistä palvelu

    docker-compose stop # Pysäytä palvelu

docker-machine-komennon asennus

 base=https://get.daocloud.io/docker/machine/releases/download/v0.14.0 &&
  curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&
  sudo install /tmp/docker-machine /usr/local/bin/docker-machine
  • 1
  • 2
  • 3

5. Käytännön taistelu: määritä dns-palvelin Linuxissa ja rakenna lemp-ympäristö (Nginx + MySQL (MariaDB) + PHP)

Vaatia

1) Määritä Linux-virtuaalikoneessa IP-osoitteeksi 192.168.90.215 (x on opiskelijatunnuksesi 3 viimeistä numeroa, y on itse määrittämä), ja virtuaalikone voi käyttää Internetiä normaalisti;

2) Määritä DNS-palvelin, toimialue on cr.com (abc on nimesi alkukirjaimet), kun määritys on valmis, käytä nslookup-ohjelmaa eteenpäin- ja taaksepäinresoluution tarkistamiseen;

3) Määritä LEMP (eli Nginx + MySQL (MariaDB) + PHP) ja siirry osoitteeseen www.cr.com (abc on nimikirjaimesi) oikean isännän kautta päästäksesi käsiksi rakennettuun LEMP:iin. (Et voi muokata hosts-tiedostoa paikallista resoluutiota varten, mutta sinun on käytettävä omaa määritettyä DNS-osoitettasi)

6. Määritä dns-resoluutio

Määritä ensin staattinen IP Linuxille http://alleniverrui.top/archives/linux-pei-zhi-jing-tai-ip (jos sitä ei voi avata, vaihda osoite alla)

//tehdä

Muokkaa /etc/named.conf-tiedostoa

vim /etc/named.conf
  • 1

Muuta kuuntelu- ja kyselyarvot mihin tahansa

Määritä dns ratkaisemaan cr.com 192.168.90.215

vim /etc/named.rfc1912.zones 
  • 1

Lisää tiedoston loppuun

zone "cr.com" IN {
   type master;
   file "cr.com.zone";
  allow-update { none; };
};
zone "215.90.168.192.in-addr.arpa" IN {
        type master;
        file "com.cr.loop";
        allow-update { none; };
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

:wq säästääksesi

Muokkaa vastaavaa asetustiedostoa vim /var/named/com.cr.loop

Lisää seuraava

$TTL 1D
@       IN SOA  cr.com. rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
        AAAA    ::1
        PTR     cr.com.
        NS      ns.cr.com.
ns      A       192.168.90.215
201     PTR     www.cr.com.
201     PTR     email.cr.com.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

Muokkaa vim /var/named/cr.com.zone

Lisää seuraava

$TTL 1D
@       IN SOA  cr.com. rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       192.168.90.215
        AAAA    ::1
        NS      ns.server.com.
ns      IN A    192.168.90.215
www     IN A    192.168.90.215
email   IN A    192.168.90.215
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

Käynnistä dns uudelleen

systemctl restart named
  • 1

Näytä dns-tila

systemctl status named
  • 1

Aloitettu onnistuneesti

Jäsentää edelleen nslookup cr.com

Käänteinen jäsennys nslookup 192.168.90.215

Säädä lamppu

Kirjoita docker-compose.yml-tiedosto kansioon /mydocker/lemp

vim /mydocker/lemp/docker-compose.yml täytä seuraava sisältö

nginx:
    build: ./nginx/
    ports:
        - 80:80
    links:
        - php
    volumes_from:
        - app

php:
    build: ./php/
    expose:
        - 9000
    links:
        - mysql
    volumes_from:
        - app

app:
    image: php:7.0-fpm
    volumes:
        - .:/var/www/html
    command: "true"

mysql:
    image: mysql:latest
    volumes_from:
        - data
    environment:
        MYSQL_ROOT_PASSWORD: secret
        MYSQL_DATABASE: bookmarks
        MYSQL_USER: cr
        MYSQL_PASSWORD: cr123

data:
    image: mysql:latest
    volumes:
        - /var/lib/mysql
    command: "true"

phpmyadmin:
    image: phpmyadmin/phpmyadmin
    ports:
        - 8080:80
    links:
        - mysql
    environment:
        PMA_HOST: mysql
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48

Luo nginx/Docker-tiedosto hakemistoon /mydocker/lemp/

täyttää

FROM nginx:latest

COPY ./default.conf /etc/nginx/conf.d/default.conf
  • 1
  • 2
  • 3

Luo default.conf

Täytä seuraava sisältö

 

server {

  listen 80 default_server;

  root /var/www/html;

  index index.html index.php;

 

  charset utf-8;

 

  location / {

try_files $uri $uri/ /index.php?$query_string;

  }

 

  location = /favicon.ico { access_log off; log_not_found off; }

  location = /robots.txt  { access_log off; log_not_found off; }

 

  access_log off;

  error_log  /var/log/nginx/error.log error;

 

  sendfile off;

 

  client_max_body_size 100m;

 

  location ~ .php$ {

  fastcgi_split_path_info ^(.+.php)(/.+)$;

  fastcgi_pass php:9000;

 fastcgi_index index.php;

 include fastcgi_params;

 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_intercept_errors off;

fastcgi_buffer_size 16k;

 fastcgi_buffers 4 16k;

  }

 

  location ~ /.ht {

 deny all;

  }

}

 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75

Luo php/Docker-tiedosto hakemistoon /mydocker/lemp/

täyttää

FROM php:7.0-fpm

RUN docker-php-ext-install mysqli

 
  • 1
  • 2
  • 3
  • 4
  • 5

Orkestroida telakointikontteja

 docker-compose up -d 
  • 1

Docker ps nähdäksesi kontin ajotilan

Aloitettu onnistuneesti

Tämä kone käyttää php-ympäristöä ja nginx-ympäristöä IP:n kautta

Pääsy onnistui

Määritä paikallinen dns-palvelin virtuaalikoneena, joka on 192.168.90.215

Avaa cmd-ikkuna ja suorita ping-testi osoitteessa cr.com

Pingattu onnistuneesti

Pääsy rakennettuun php-ympäristöön verkkotunnuksen kautta

Muokkaa nginx-määritystiedostoa

Lopullinen verkkotunnuksen nimi pääsee suoraan verkkosivustolle