Αναπτύξτε μια εφαρμογή PHP χρησιμοποιώντας Docker-compose

Οι εφαρμογές PHP συνήθως αποτελούνται από έναν διακομιστή ιστού, ένα σύστημα σχεσιακής βάσης δεδομένων και τον ίδιο τον διερμηνέα γλώσσας. Σε αυτό το σεμινάριο θα αξιοποιήσουμε μια πλήρη στοίβα εφαρμογών PHP χρησιμοποιώντας docker. Αυτό είναι ένα σε βάθος σεμινάριο στο οποίο πρόκειται να δημιουργήσουμε και να ενορχηστρώσουμε κοντέινερ για τον Nginx (τον διακομιστή ιστού), τη MySQL (το σύστημα βάσης δεδομένων) και την PHP.

Για χάρη αυτού του σεμιναρίου, θα γράψουμε μια απλή εφαρμογή που διαβάζει μια λίστα πόλεων από μια βάση δεδομένων και την εμφανίζει σε μια ιστοσελίδα, με αυτόν τον τρόπο θα παρουσιάσουμε μια βασική, αλλά λειτουργική, εφαρμογή PHP.

Αυτός ο οδηγός προϋποθέτει ότι έχετε ήδη εγκαταστήσει το Docker-CE και τουλάχιστον μια ελάχιστη γνώση εργασίας του docker. Για αυτό το θέμα, μπορείτε να διαβάσετε τα ακόλουθα σεμινάρια:

Διαμόρφωση του εργασιακού μας περιβάλλοντος

Μια πραγματική εφαρμογή που βασίζεται σε docker θα αποτελείται συνήθως από πολλά κοντέινερ. Η χειροκίνητη διαχείριση τους μπορεί εύκολα να γίνει αρκετά ακατάστατη και δυσκίνητη. Εκεί παίζει ρόλο το docker-compose. Σας βοηθά να διαχειριστείτε έναν αριθμό κοντέινερ μέσω ενός απλού yamlαρχείου διαμόρφωσης.

Εγκαταστήστε το docker-compose.

curl -L https://github.com/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

Δημιουργήστε έναν φάκελο για να κρατήσετε όλα τα απαραίτητα αρχεία αυτού του παραδείγματος και μετά cdσε αυτόν. Από εδώ και στο εξής, αυτός είναι ο κατάλογος εργασίας μας και κάθε εντολή θα εκτελείται μέσα σε αυτόν τον φάκελο και κάθε διαδρομή θα αναφέρεται σε αυτόν. Αυτός ο φάκελος μπορεί να αναφέρεται αργότερα ως WORKING_DIR.

mkdir ~/docker
cd ~/docker

Τώρα δημιουργήστε άλλους τρεις φακέλους.

mkdir php nginx app

Ο phpφάκελος είναι όπου θα δημιουργήσουμε την προσαρμοσμένη εικόνα PHP, ο nginxφάκελος θα περιέχει τα απαραίτητα αρχεία για την προσαρμοσμένη εικόνα nginx και ο appφάκελος είναι όπου θα τοποθετήσουμε τον πηγαίο κώδικα και τη διαμόρφωση του δείγματος της εφαρμογής μας.

Διαμόρφωση του κοντέινερ PHP

Σε αυτό το παράδειγμα, θα χρησιμοποιήσουμε php-fpmγια να συνδεθούμε στον διακομιστή ιστού Nginx. Θα χρησιμοποιήσουμε την επίσημη εικόνα βάσης PHP. Ωστόσο, πρέπει επίσης να εγκαταστήσουμε και να ενεργοποιήσουμε ορισμένες επεκτάσεις ώστε να έχουμε πρόσβαση στη βάση δεδομένων. Μέσα στο phpφάκελο δημιουργήστε ένα αρχείο με το όνομα Dockerfileκαι τοποθετήστε τα ακόλουθα περιεχόμενα σε αυτό.

FROM php:7.1-fpm-alpine3.4
RUN apk update --no-cache \
    && apk add --no-cache $PHPIZE_DEPS \
    && apk add --no-cache mysql-dev \
    && docker-php-ext-install pdo pdo_mysql

Σημειώστε ότι χρησιμοποιούμε την Alpine έκδοση της επίσημης εικόνας PHP. Το Alpine είναι μια πολύ μικρή διανομή που στοχεύει σε εμπορευματοκιβώτια παρέχοντας πολύ μικρότερα αποτυπώματα. Επίσης, σημειώστε τη χρήση της εντολής docker-php-ext-install, η επίσημη εικόνα PHP παρέχει αυτήν την εντολή για να διευκολύνει τη διαδικασία εγκατάστασης και διαμόρφωσης επεκτάσεων PHP.

Τώρα, ας δημιουργήσουμε αυτήν την εικόνα Docker εκδίδοντας τα ακόλουθα (μέσα στο δικό μας WORKING_DIR):

docker build -t vultr-php php/

Το docker-compose.ymlαρχείο

Όπως ήδη αναφέρθηκε, docker-composeσας επιτρέπει να διαχειριστείτε έναν αριθμό κοντέινερ μέσω ενός απλού αρχείου διαμόρφωσης. Αυτό το αρχείο ρυθμίσεων συνήθως ονομάζεται docker-compose.yml. Δημιουργήστε αυτό το αρχείο μέσα στο appφάκελο.

touch app/docker-compose.yml

Τώρα βάλτε τα ακόλουθα περιεχόμενα σε αυτό το αρχείο.

version: '2'
services:
  php:
    image: vultr-php
    volumes:
      - ./:/app
    working_dir: /app

Θα εξηγήσουμε αυτή τη σύνταξη. Πρώτα, σημειώστε την πρώτη γραμμή.

version: '2'

Αυτό καθορίζει την έκδοση του docker-compose.ymlαρχείου διαμόρφωσης που χρησιμοποιείται. Η επόμενη γραμμή καθορίζει τις υπηρεσίες, ή με άλλα λόγια, τα κοντέινερ που θα παρασχεθούν.

services:
  php:
    image: vultr-php
    volumes:
      - ./:/app
    working_dir: /app

Σημειώστε ότι κάθε υπηρεσία έχει ένα συγκεκριμένο κλειδί μέσα στο servicesμπλοκ. Το όνομα που καθορίζεται εδώ θα χρησιμοποιηθεί για αναφορά σε αυτό το συγκεκριμένο κοντέινερ αργότερα. Σημειώστε επίσης ότι μέσα στη phpδιαμόρφωση, ορίζουμε την εικόνα που χρησιμοποιείται για την εκτέλεση του κοντέινερ (αυτή είναι η εικόνα που δημιουργήσαμε προηγουμένως). Ορίζουμε επίσης μια αντιστοίχιση όγκου.

volumes:
  - ./:/app

Αυτό λέει docker-composeνα αντιστοιχίσετε τον τρέχοντα κατάλογο ( ./) στον /appκατάλογο μέσα στο κοντέινερ. Η τελευταία γραμμή ορίζει τον /appφάκελο μέσα στο κοντέινερ ως κατάλογο εργασίας, πράγμα που σημαίνει ότι αυτός είναι ο φάκελος από τον οποίο εκτελούνται από προεπιλογή όλες οι μελλοντικές εντολές μέσα σε ένα κοντέινερ.

Μπορούμε τώρα να ενορχηστρώσουμε τα δοχεία μας.

cd ~/docker/app
docker-compose up -d

Μπορείτε να εκτελέσετε την ακόλουθη εντολή για να βεβαιωθείτε ότι το κοντέινερ PHP εκτελέστηκε:

docker ps

Πώς να εκτελέσετε εντολές μέσα στα κοντέινερ

Ακόμα μέσα στο appφάκελο, μπορούμε να εκτελέσουμε οποιαδήποτε εντολή μέσα σε ένα καθορισμένο κοντέινερ υπηρεσίας με τη βοήθεια της docker-composeεντολής.

docker-compose exec [service] [command]

Το [service]σύμβολο κράτησης θέσης αναφέρεται στο κλειδί υπηρεσίας. Στην περίπτωσή μας, αυτό ήταν php. Ας εκτελέσουμε μια εντολή μέσα στο κοντέινερ για να ελέγξουμε την έκδοση PHP.

docker-compose exec php php -v

Θα δείτε την ακόλουθη έξοδο.

PHP 7.1.14 (cli) (built: Feb  7 2018 00:40:45) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

Διαμόρφωση του κοντέινερ Nginx

Ακριβώς όπως το κοντέινερ PHP, πρέπει να δημιουργήσουμε μια προσαρμοσμένη εικόνα για τον διακομιστή ιστού. Αλλά σε αυτήν την περίπτωση, χρειάζεται απλώς να παρέχουμε μια διαμόρφωση για το δικό μας virtual host. Βεβαιωθείτε ότι είστε μέσα στο WORKING_DIRδικό μας και δημιουργήστε ένα Dockerfileμέσα στο nginxφάκελο:

cd ~/docker
touch nginx/Dockerfile

Τώρα βάλτε το ακόλουθο περιεχόμενο σε αυτό Dockerfile:

FROM nginx:1.13.8-alpine
COPY ./default.conf /etc/nginx/conf.d/default.conf

Χρησιμοποιούμε την προεπιλεγμένη εικόνα Nginx που βασίζεται στο Alpine. Σε αυτό το αρχείο Docker απλώς αντιγράφουμε ένα αρχείο διαμόρφωσης στη ρύθμιση της εφαρμογής μας. Πριν δημιουργήσετε αυτήν την εικόνα, δημιουργήστε ένα αρχείο διαμόρφωσης.

touch nginx/default.conf

Τώρα συμπληρώστε το με αυτό το περιεχόμενο.

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /app;
    index index.php;

    #server_name server_domain_or_IP;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Σημειώστε ότι στη fastcgi_pass php:9000γραμμή αναφέρουμε το κοντέινερ PHP με το όνομά του μέσα στο serviceμπλοκ του docker-compose.ymlαρχείου διαμόρφωσης. Εσωτερικά docker-composeδημιουργεί ένα δίκτυο και εκχωρεί το όνομα της υπηρεσίας ως όνομα κεντρικού υπολογιστή σε καθεμία από τις υπηρεσίες που έχουν οριστεί. Μπορούμε τώρα να δημιουργήσουμε την εικόνα Nginx.

docker build -t vultr-nginx nginx/

Ενημέρωση docker-compose.yml

Τώρα ενημερώστε το app/docker-compose.ymlαρχείο.

version: '2'
services:
  php:
    image: vultr-php
    volumes:
      - ./:/app
    working_dir: /app
  web:
    image: vultr-nginx
    volumes:
      - ./:/app
    depends_on:
      - php
    ports:
      - 80:80

Έχουμε προσθέσει μόνο μια νέα υπηρεσία. Η διαμόρφωση είναι σχεδόν η ίδια, εκτός από τα ακόλουθα.

depends_on:
  - php
ports:
  - 80:80

Once the Nginx container needs the PHP service to be fully initialized, we force this requirement in the depends_on option. The ports configuration key maps a host port to a container port, here we map the port 80 in the host to the port 80 in the container.

Now create a file called index.php inside the app folder and put the following in it.

<?php phpinfo();

Make sure the port 80 is accessible through your firewall and execute the following.

cd ~/docker/app
docker-compose up -d

Once again, double check that the service is up.

docker ps

Open a browser and access [vultr-instance-ip]. You may find out your Vultr instance IP address by running the following.

hostname -I

You will see the PHP info page.

Configuring the MySQL container

Η επίσημη εικόνα της MySQL σάς επιτρέπει να διαμορφώσετε το κοντέινερ μέσω απλών μεταβλητών περιβάλλοντος. Αυτό μπορεί να γίνει με μια environmentεπιλογή μέσα στον ορισμό του μπλοκ υπηρεσιών. Ενημερώστε το ~/docker/app/docker-compose.ymlαρχείο ως εξής.

version: '2'
services:
  php:
    image: vultr-php
    volumes:
      - ./:/app
    working_dir: /app
  web:
    image: vultr-nginx
    volumes:
      - ./:/app
    depends_on:
      - php
    ports:
      - 80:80
  mysql:
    image: mysql:5.7.21
    volumes:
      - ./:/app
      - dbdata:/var/lib/mysql
    environment:
      - MYSQL_DATABASE=world
      - MYSQL_ROOT_PASSWORD=root
    working_dir: /app
volumes:
  dbdata:

Τώρα έχουμε ορίσει μια νέα υπηρεσία για τη βάση δεδομένων. Παρατηρήστε τη γραμμή dbdata:/var/lib/mysql. Αυτό προσαρτά τη διαδρομή στο κοντέινερ /var/lib/mysqlσε έναν μόνιμο τόμο που διαχειρίζεται το Docker, με αυτόν τον τρόπο τα δεδομένα της βάσης δεδομένων παραμένουν μετά την αφαίρεση του κοντέινερ. Αυτός ο τόμος πρέπει να οριστεί σε ένα μπλοκ ανώτατου επιπέδου όπως μπορείτε να δείτε στο τέλος του αρχείου.

Πριν ενορχηστρώσουμε τη νέα μας διαμόρφωση, ας κατεβάσουμε ένα δείγμα βάσης δεδομένων MySQL. Η επίσημη τεκμηρίωση της MySQL παρέχει μερικά δείγματα βάσεων δεδομένων. Θα χρησιμοποιήσουμε τη γνωστή παγκόσμια βάση δεδομένων. Αυτή η βάση δεδομένων παρέχει μια λίστα χωρών και πόλεων. Για να κάνετε λήψη αυτού του δείγματος, εκτελέστε τα παρακάτω μέσα στο φάκελο της εφαρμογής μας.

curl -L http://downloads.mysql.com/docs/world.sql.gz -o world.sql.gz
gunzip world.sql.gz

Τώρα ας ενορχηστρώσουμε τα δοχεία μας.

docker-compose up -d

Όπως ίσως έχετε ήδη παρατηρήσει, η docker-compose upεντολή ξεκινά μόνο τα κοντέινερ που δεν έχουν ήδη ξεκινήσει. Ελέγχει για τις διαφορές μεταξύ του docker-compose.ymlαρχείου σας και της τρέχουσας διαμόρφωσης των κοντέινερ που τρέχουν.

Για άλλη μια φορά, ελέγξτε ότι το κοντέινερ MySQL ξεκίνησε.

docker ps

Τώρα συμπληρώστε την παγκόσμια βάση δεδομένων.

docker-compose exec -T mysql mysql -uroot -proot world < world.sql

Μπορείτε να επαληθεύσετε ότι η βάση δεδομένων ήταν συμπληρωμένη επιλέγοντας δεδομένα απευθείας από τη βάση δεδομένων. Πρώτα αποκτήστε πρόσβαση στην προτροπή MySQL μέσα στο κοντέινερ.

docker-compose exec mysql mysql -uroot -proot world

Στη γραμμή εντολών MySQL, εκτελέστε τα εξής.

select * from city limit 10;

Θα δείτε μια λίστα με τις πόλεις. Τώρα κλείστε την προτροπή MySQL.

mysql> exit

Δημιουργία της εφαρμογής μας

Τώρα που όλα τα απαραίτητα κοντέινερ είναι σε λειτουργία, μπορούμε να επικεντρωθούμε στο δείγμα της εφαρμογής μας. Ενημερώστε το app/index.phpαρχείο ως εξής.

<?php

$pdo = new PDO('mysql:host=mysql;dbname=world;charset=utf8', 'root', 'root');

$stmt = $pdo->prepare("
    select city.Name, city.District, country.Name as Country, city.Population
    from city
    left join country on city.CountryCode = country.Code
    order by Population desc
    limit 10
");
$stmt->execute();
$cities = $stmt->fetchAll(PDO::FETCH_ASSOC);

?>

<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Vultr Rocks!</title>
</head>
<body>
    <h2>Most Populous Cities In The World</h2>
    <table>
    <thead>
        <tr>
            <th>Name</th>
            <th>Country</th>
            <th>District</th>
            <th>Population</th>
        </tr>
    </thead>
    <tbody>
        <?php foreach($cities as $city): ?>
            <tr>
                <td><?=$city['Name']?></td>
                <td><?=$city['Country']?></td>
                <td><?=$city['District']?></td>
                <td><?=number_format($city['Population'], 0)?></td>
            </tr>
        <?php endforeach ?>
    </tbody>
    </table>
</body>
</html>

Εάν έχετε πρόσβαση [vultr-instance-ip]σε πρόγραμμα περιήγησης ιστού, θα δείτε μια λίστα με τις πολυπληθέστερες πόλεις στον κόσμο. Συγχαρητήρια, έχετε αναπτύξει μια πλήρως λειτουργική εφαρμογή PHP χρησιμοποιώντας docker.

συμπέρασμα

Σε αυτό το σεμινάριο, έχω δείξει βήμα προς βήμα πώς να ρυθμίσετε μια πλήρως λειτουργική εφαρμογή PHP. Δημιουργήσαμε προσαρμοσμένες εικόνες για PHP και Nginx και διαμορφώσαμε το docker-compose για να ενορχηστρώνουμε τα κοντέινερ μας. Παρά το γεγονός ότι είναι πολύ βασική και απλή, αυτή η ρύθμιση αντικατοπτρίζει ένα πραγματικό σενάριο ζωής.

Σε αυτόν τον οδηγό, δημιουργήσαμε και προσθέσαμε ετικέτες στις εικόνες μας τοπικά. Για πιο ευέλικτη ρύθμιση, μπορείτε να προωθήσετε αυτές τις εικόνες σε ένα μητρώο σταθμών . Μπορείτε να μεταβείτε στο επίσημο μητρώο docker ή ακόμα και να ρυθμίσετε το δικό σας μητρώο docker. Σε κάθε περίπτωση, αυτό θα σας επιτρέψει να δημιουργήσετε τις εικόνες σας σε έναν κεντρικό υπολογιστή και να τις χρησιμοποιήσετε σε έναν άλλο.

Για πιο λεπτομερή χρήση του docker-compose, θα πρέπει να ανατρέξετε στην επίσημη τεκμηρίωση .

Ανάλογα με τις απαιτήσεις της εφαρμογής σας και το πλαίσιο PHP που χρησιμοποιείτε, ίσως θέλετε να προσθέσετε περισσότερες επεκτάσεις. Αυτό μπορεί εύκολα να γίνει τροποποιώντας το Dockerfileχρησιμοποιούμενο για τη δημιουργία προσαρμοσμένης εικόνας PHP. Ωστόσο, ορισμένες επεκτάσεις χρειάζονται επιπλέον εξαρτήσεις για να εγκατασταθούν στο κοντέινερ. Θα πρέπει να ανατρέξετε στη λίστα των επεκτάσεων στην επίσημη τεκμηρίωση της PHP για να ελέγξετε τις βασικές απαιτήσεις κάθε επέκτασης.


Δείτε πώς μπορείτε να ελέγξετε τα κοντέινερ Hyper-V στο Windows 10 Insider

Δείτε πώς μπορείτε να ελέγξετε τα κοντέινερ Hyper-V στο Windows 10 Insider

Η Microsoft εξήγησε σε μια νέα ανάρτηση ιστολογίου πώς τα Windows Insiders μπορούν να δοκιμάσουν κοντέινερ Hyper-V στα Windows 10, μια νέα λύση εικονικοποίησης που επιτρέπει στις εφαρμογές να εκτελούνται χωρίς να επηρεάζεται το υπόλοιπο λειτουργικό σας σύστημα.

Πώς να εγκαταστήσετε το Harbor στο CentOS 7

Πώς να εγκαταστήσετε το Harbor στο CentOS 7

Το Harbor είναι ένας διακομιστής μητρώου εταιρικής κλάσης ανοιχτού κώδικα που αποθηκεύει και διανέμει εικόνες Docker. Το Harbour επεκτείνει τη διανομή Docker ανοιχτού κώδικα β

Εγκαταστήστε το Rancher OS μέσω iPXE

Εγκαταστήστε το Rancher OS μέσω iPXE

Το Rancher OS είναι μια πολύ ελαφριά διανομή Linux που βασίζεται στο Docker. Το ίδιο το λειτουργικό σύστημα ζυγίζει περίπου 20MB. Αυτό το σεμινάριο θα σας βάλει σε λειτουργία

Εγκατάσταση του docker-compose στο CoreOS

Εγκατάσταση του docker-compose στο CoreOS

Αυτό το άρθρο εξηγεί πώς να εγκαταστήσετε το docker-compose στο CoreOS. Στο CoreOS, ο φάκελος /usr/ είναι αμετάβλητος, επομένως η τυπική διαδρομή /usr/local/bin δεν είναι διαθέσιμη για

Εγκαταστήστε το Rancher στο CentOS 7

Εγκαταστήστε το Rancher στο CentOS 7

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Εισαγωγή Το Rancher είναι μια πλατφόρμα ανοιχτού κώδικα για τη λειτουργία κοντέινερ και τη δημιουργία ιδιωτικής υπηρεσίας εμπορευματοκιβωτίων. Το Rancher είναι η βάση

Εγκαταστήστε το Docker CE στο Ubuntu 18.04

Εγκαταστήστε το Docker CE στο Ubuntu 18.04

Εισαγωγή Το Docker είναι μια εφαρμογή που μας επιτρέπει να αναπτύξουμε προγράμματα που εκτελούνται ως κοντέινερ. Ήταν γραμμένο στη δημοφιλή γλώσσα προγραμματισμού Go

Δημιουργήστε ένα Docker Swarm στο Alpine Linux 3.9.0

Δημιουργήστε ένα Docker Swarm στο Alpine Linux 3.9.0

Εισαγωγή Αυτός ο οδηγός θα σας δείξει πώς να δημιουργήσετε και να διαμορφώσετε ένα σμήνος Docker χρησιμοποιώντας πολλούς διακομιστές Alpine Linux 3.9.0 και Portainer. Παρακαλώ να γνωρίζετε ότι

Αναπτύξτε μια εφαρμογή PHP χρησιμοποιώντας Docker-compose

Αναπτύξτε μια εφαρμογή PHP χρησιμοποιώντας Docker-compose

Οι εφαρμογές PHP συνήθως αποτελούνται από έναν διακομιστή web, ένα σύστημα σχεσιακής βάσης δεδομένων και τον ίδιο τον διερμηνέα γλώσσας. Σε αυτό το σεμινάριο θα χρησιμοποιήσουμε μόχλευση

Υπόλοιπο φόρτωσης με Docker

Υπόλοιπο φόρτωσης με Docker

Όταν εκτελείτε μια εφαρμογή Ιστού, συνήθως θέλετε να αξιοποιήσετε στο έπακρο τους πόρους σας χωρίς να χρειάζεται να μετατρέψετε το λογισμικό σας για χρήση πολλαπλών νημάτων o

Αναπτύξτε μια εφαρμογή Node.js χρησιμοποιώντας Docker

Αναπτύξτε μια εφαρμογή Node.js χρησιμοποιώντας Docker

Αυτό το άρθρο θα σας δείξει πώς να αναπτύξετε την εφαρμογή Node σας σε ένα κοντέινερ Docker. Σημείωση: Αυτό το σεμινάριο προϋποθέτει ότι έχετε εγκαταστήσει και διαβάσει το Docker

Εγκατάσταση του Docker CE στο CentOS 7

Εγκατάσταση του Docker CE στο CentOS 7

Η τεχνολογία Docker container σάς επιτρέπει να εκτελείτε εφαρμογές σε ένα συγκεκριμένο και απομονωμένο περιβάλλον. Το Docker Community Edition (CE) είναι το νέο όνομα για το fre

Αναπτύξτε το Kubernetes με το Kubeadm στο CentOS 7

Αναπτύξτε το Kubernetes με το Kubeadm στο CentOS 7

Επισκόπηση Αυτό το άρθρο προορίζεται να σας βοηθήσει να θέσετε σε λειτουργία ένα σύμπλεγμα Kubernetes με το kubeadm σε ελάχιστο χρόνο. Αυτός ο οδηγός θα αναπτύξει δύο διακομιστές, σε

Εγκατάσταση του Docker στο CentOS 7

Εγκατάσταση του Docker στο CentOS 7

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Docker είναι μια εφαρμογή που επιτρέπει την ανάπτυξη λογισμικού εντός εικονικών κοντέινερ. Ήταν γραμμένο στο πρόγραμμα Go

Ξεκινήστε με τον SQL Server 2017 (MS-SQL) στο CentOS 7 με Docker

Ξεκινήστε με τον SQL Server 2017 (MS-SQL) στο CentOS 7 με Docker

Προαπαιτούμενα Docker engine 1.8+. Τουλάχιστον 4 GB χώρου στο δίσκο. Τουλάχιστον 4 GB μνήμης RAM. Βήμα 1. Εγκατάσταση Docker Για να εγκαταστήσετε τον SQL-Server, ο Docker mus

Δύο εργαλεία διαχείρισης γραφικών Docker: DockerUI και Shipyard

Δύο εργαλεία διαχείρισης γραφικών Docker: DockerUI και Shipyard

Με τη βοήθεια της εφαρμογής Vultr Docker, μπορείτε εύκολα να αναπτύξετε το Docker στην παρουσία του διακομιστή Vultr. Εν τω μεταξύ, μπορείτε να διευκολύνετε τη διαχείριση του Docker

Εγκαταστήστε τον διακομιστή Rancher στο RancherOS

Εγκαταστήστε τον διακομιστή Rancher στο RancherOS

Επισκόπηση Το RancherOS είναι ένα απίστευτα ελαφρύ λειτουργικό σύστημα (μόνο περίπου 60 MB) που εκτελεί έναν δαίμονα Docker συστήματος ως PID 0 για την εκτέλεση υπηρεσιών συστήματος

Ξεκινώντας με το Kubernetes στο CentOS 7

Ξεκινώντας με το Kubernetes στο CentOS 7

Το Kubernetes είναι μια πλατφόρμα ανοιχτού κώδικα που αναπτύχθηκε από την Google για τη διαχείριση εφαρμογών με κοντέινερ σε ένα σύμπλεγμα διακομιστών. Χτίζεται σε μια δεκαετία και

Εγκαταστήστε το Rancher στο Ubuntu 16.04

Εγκαταστήστε το Rancher στο Ubuntu 16.04

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Εισαγωγή Το Rancher είναι μια πλατφόρμα ανοιχτού κώδικα για τη λειτουργία κοντέινερ και τη δημιουργία ιδιωτικής υπηρεσίας εμπορευματοκιβωτίων. Το Rancher είναι η βάση

Ρύθμιση Sentry μέσω Docker στο Ubuntu 16.04

Ρύθμιση Sentry μέσω Docker στο Ubuntu 16.04

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Εισαγωγή Το Sentry είναι μια λύση ανοιχτού κώδικα για την παρακολούθηση σφαλμάτων. Το Sentry παρακολουθεί εξαιρέσεις και άλλα χρήσιμα μηνύματα

Sticky Session With Docker Swarm (CE) στο CentOS 7

Sticky Session With Docker Swarm (CE) στο CentOS 7

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Εισαγωγή Το Docker Swarm μετατρέπει τους μεμονωμένους διακομιστές σας σε ένα σύμπλεγμα υπολογιστών, διευκολύνοντας την κλιμάκωση, την υψηλή διαθεσιμότητα και

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Η Τεχνητή Νοημοσύνη δεν είναι στο μέλλον, είναι εδώ ακριβώς στο παρόν Σε αυτό το blog Διαβάστε πώς οι εφαρμογές Τεχνητής Νοημοσύνης έχουν επηρεάσει διάφορους τομείς.

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Είστε επίσης θύμα των επιθέσεων DDOS και έχετε μπερδευτεί σχετικά με τις μεθόδους πρόληψης; Διαβάστε αυτό το άρθρο για να λύσετε τις απορίες σας.

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Μπορεί να έχετε ακούσει ότι οι χάκερ κερδίζουν πολλά χρήματα, αλλά έχετε αναρωτηθεί ποτέ πώς κερδίζουν τέτοια χρήματα; ας συζητήσουμε.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Θέλετε να δείτε επαναστατικές εφευρέσεις της Google και πώς αυτές οι εφευρέσεις άλλαξαν τη ζωή κάθε ανθρώπου σήμερα; Στη συνέχεια, διαβάστε στο blog για να δείτε τις εφευρέσεις της Google.

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Η ιδέα των αυτοκινούμενων αυτοκινήτων να βγαίνουν στους δρόμους με τη βοήθεια της τεχνητής νοημοσύνης είναι ένα όνειρο που έχουμε εδώ και καιρό. Όμως, παρά τις πολλές υποσχέσεις, δεν φαίνονται πουθενά. Διαβάστε αυτό το blog για να μάθετε περισσότερα…

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Καθώς η Επιστήμη εξελίσσεται με γρήγορους ρυθμούς, αναλαμβάνοντας πολλές από τις προσπάθειές μας, αυξάνονται και οι κίνδυνοι να υποβάλλουμε τον εαυτό μας σε μια ανεξήγητη Ιδιότητα. Διαβάστε τι σημαίνει η μοναδικότητα για εμάς.

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Οι μέθοδοι αποθήκευσης των δεδομένων εξελίσσονται μπορεί να είναι από τη γέννηση των Δεδομένων. Αυτό το ιστολόγιο καλύπτει την εξέλιξη της αποθήκευσης δεδομένων με βάση ένα infographic.

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Διαβάστε το ιστολόγιο για να μάθετε διαφορετικά επίπεδα στην Αρχιτεκτονική Μεγάλων Δεδομένων και τις λειτουργίες τους με τον απλούστερο τρόπο.

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

Σε αυτόν τον ψηφιακό κόσμο, οι έξυπνες οικιακές συσκευές έχουν γίνει κρίσιμο μέρος της ζωής. Ακολουθούν μερικά εκπληκτικά οφέλη των έξυπνων οικιακών συσκευών σχετικά με το πώς κάνουν τη ζωή μας να αξίζει και να απλοποιείται.

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Πρόσφατα, η Apple κυκλοφόρησε το macOS Catalina 10.15.4 μια συμπληρωματική ενημέρωση για την επιδιόρθωση προβλημάτων, αλλά φαίνεται ότι η ενημέρωση προκαλεί περισσότερα προβλήματα που οδηγούν σε bricking των μηχανών mac. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα