le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Compose è uno strumento software lanciato da Docker Company, in grado di gestire più contenitori Docker per formare un'applicazione. È necessario definire un file di configurazione docker-compose.yml in formato YAML e scrivere le relazioni di chiamata tra più contenitori.Quindi, con un solo comando, puoi avviare/arrestare questi contenitori contemporaneamente
Docker consiglia di eseguire un solo servizio in ciascun contenitore Poiché il contenitore docker stesso occupa pochissime risorse, è meglio separare ciascun servizio separatamente. Ma poi ci troviamo di fronte a un altro problema?
Se devo distribuire più servizi contemporaneamente, devo scrivere un Dockerfile separato per ciascun servizio e quindi creare l'immagine e il contenitore. Questo è estenuante, quindi docker ci fornisce ufficialmente lo strumento di distribuzione multiservizio docker-compose? .
Ad esempio, per implementare un progetto di microservizi Web, oltre al contenitore del servizio Web stesso, è spesso necessario aggiungere il contenitore del servizio mysql del database back-end, il server Redis, il centro di registrazione eureka e persino i contenitori di bilanciamento del carico, ecc. . . . . .
Compose consente agli utenti di definire un set di contenitori di applicazioni associati come progetto tramite un file modello docker-compose.yml separato (formato YAML).
Puoi facilmente definire un'applicazione multi-contenitore con un file di configurazione, quindi utilizzare un singolo comando per installare tutte le dipendenze dell'applicazione e completare la compilazione. Docker-Compose risolve il problema di come gestire e orchestrare i contenitori.
Indirizzo di download accelerato
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
Aggiungi autorizzazioni eseguibili
chmod +x /usr/local/bin/docker-compose
Controlla se l'installazione è andata a buon fine
docker-compose --version
disinstallare
sudo rm / usr/ local/ bin/docker-compose
Tre passaggi per utilizzare Compose
Scrivi Dockerfile per definire ciascuna applicazione di microservizi e creare il file immagine corrispondente
Utilizza docker-compose.yml per definire un'unità aziendale completa e organizzare vari servizi contenitore nell'applicazione complessiva.
Infine, esegui il comando docker-compose up per avviare ed eseguire l'intera applicazione per completare la distribuzione con un clic e andare online.
Componi comandi comuni
docker-compose -h # Visualizza la guida
docker-compose up # Avvia tutti i servizi docker-compose
docker-compose up -d # Avvia tutti i servizi docker-compose e li esegue in background
docker-compose down # Arresta ed elimina contenitori, reti, volumi e immagini.
L'ID del servizio in docker-compose exec yml # Inserisci all'interno dell'istanza del contenitore
docker-compose exec file docker-compose.yml scritto ID servizio /bin/bash
docker-compose ps # Visualizza tutti i contenitori in esecuzione attualmente orchestrati da docker-compose
docker-compose top # Visualizza i processi contenitore correnti orchestrati da docker-compose
ID servizio nei log di composizione docker yml # Visualizza il log di output del contenitore
docker-compose config # Controlla la configurazione
docker-compose config -q # Controlla la configurazione e l'output solo se ci sono problemi
docker-compose restart # Riavvia il servizio
docker-compose start # Avvia il servizio
docker-compose stop # Interrompe il servizio
installazione del comando docker-machine
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) Nella macchina virtuale Linux, configura l'indirizzo IP su 192.168.90.215 (x sono le ultime 3 cifre del tuo ID studente, y è specificato da te) e la macchina virtuale potrà accedere a Internet normalmente;
2) Configura il server DNS, il dominio è cr.com (abc sono le iniziali del tuo nome), una volta completata la configurazione, usa nslookup per verificare la risoluzione forward e reverse;
3) Configura LEMP (ovvero Nginx + MySQL (MariaDB) + PHP) e accedi a www.cr.com (abc sono le tue iniziali) tramite l'host reale per accedere al LEMP creato. (Non è possibile modificare il file host per la risoluzione locale, ma è necessario utilizzare il proprio DNS configurato)
Per prima cosa configura l'IP statico per Linux http://alleniverrui.top/archives/linux-pei-zhi-jing-tai-ip (se non si apre, cambia l'indirizzo qui sotto)
//fare
Modifica il file /etc/named.conf
vim /etc/named.conf
Modificare i valori di ascolto e query su any
Configura il DNS per risolvere cr.com su 192.168.90.215
vim /etc/named.rfc1912.zones
Aggiungi alla fine del file
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; };
};
:wq per salvare
Modifica il file di configurazione corrispondente vim /var/named/com.cr.loop
Aggiungere quanto segue
$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.
Modifica vim /var/named/cr.com.zone
Aggiungere quanto segue
$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
Riavvia i DNS
systemctl restart named
Visualizza lo stato del DNS
systemctl status named
Iniziato con successo
Analisi in avanti di nslookup cr.com
Analisi inversa di nslookup 192.168.90.215
Scrivi il file docker-compose.yml in /mydocker/lemp
vim /mydocker/lemp/docker-compose.yml compila il seguente contenuto
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
Crea nginx/Dockerfile in /mydocker/lemp/
compilare
FROM nginx:latest
COPY ./default.conf /etc/nginx/conf.d/default.conf
Crea default.conf
Compila il seguente contenuto
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;
}
}
Crea php/Dockerfile in /mydocker/lemp/
compilare
FROM php:7.0-fpm
RUN docker-php-ext-install mysqli
Orchestra i contenitori docker
docker-compose up -d
Docker ps per visualizzare lo stato di esecuzione del contenitore
Avviato con successo
Questa macchina accede all'ambiente php e all'ambiente nginx tramite IP
Accesso riuscito
Configura il server DNS locale come macchina virtuale, che è 192.168.90.215
Apri la finestra cmd ed esegui un test ping su cr.com
Ping eseguito correttamente
Accedi all'ambiente php creato tramite il nome di dominio
Modifica il file di configurazione nginx
Il nome di dominio finale accede direttamente al sito web