ปรับใช้แอปพลิเคชัน PHP โดยใช้ Docker-compose

แอปพลิเคชัน PHP มักประกอบด้วยเว็บเซิร์ฟเวอร์ระบบฐานข้อมูลเชิงสัมพันธ์และล่ามภาษาเอง ในบทช่วยสอนนี้เราจะใช้ประโยชน์จากแอพพลิเคชั่น PHP แบบเต็มโดยใช้นักเทียบท่า นี่คือการสอนเชิงลึกที่เราจะสร้างและดัดแปลงบรรจุภัณฑ์สำหรับ Nginx (เว็บเซิร์ฟเวอร์), MySQL (ระบบฐานข้อมูล) และ PHP

เพื่อประโยชน์ของบทช่วยสอนนี้เราจะเขียนแอปพลิเคชั่นเรียบง่ายที่อ่านรายชื่อเมืองจากฐานข้อมูลและแสดงบนหน้าเว็บด้วยวิธีนี้เราจะแสดงให้เห็นถึงพื้นฐาน แต่ทำงานได้กับแอปพลิเคชัน PHP

คู่มือนี้อนุมานว่าคุณได้ติดตั้ง Docker-CE ไว้แล้วและอย่างน้อยก็มีความรู้เกี่ยวกับการทำงานของ Docker น้อยที่สุด สำหรับเรื่องนั้นคุณสามารถอ่านบทช่วยสอนต่อไปนี้:

การกำหนดค่าสภาพแวดล้อมการทำงานของเรา

โดยทั่วไปแล้วแอปพลิเคชันที่ใช้ชีวิตจริงของนักเทียบท่าจะประกอบด้วยหลายคอนเทนเนอร์ การจัดการสิ่งเหล่านี้ด้วยตนเองสามารถกลายเป็นเรื่องยุ่งและยุ่งยากได้ง่าย นั่นคือสิ่งที่นักเทียบท่าประกอบเข้ามาเล่น ช่วยให้คุณจัดการคอนเทนเนอร์จำนวนหนึ่งผ่านyamlไฟล์การกำหนดค่าอย่างง่าย

ติดตั้งส่วนประกอบนักเทียบท่า

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

โปรดทราบว่าเรากำลังใช้อิมเมจ PHP อย่างเป็นทางการในเวอร์ชันอัลไพน์ อัลไพน์คือการกระจายขนาดเล็กมากที่กำหนดเป้าหมายไปยังภาชนะบรรจุโดยให้รอยเท้าที่เล็กกว่ามาก นอกจากนี้ให้สังเกตการใช้คำสั่ง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 ที่เป็นค่าเริ่มต้นโดยยึดตามอัลไพน์ ในไฟล์ 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

เมื่อคอนเทนเนอร์ Nginx ต้องการบริการ PHP เพื่อเริ่มต้นอย่างสมบูรณ์เราจะบังคับใช้ข้อกำหนดนี้ในdepends_onตัวเลือก portsที่สำคัญการกำหนดค่าแผนที่พอร์ตโฮสต์กับพอร์ตภาชนะที่นี่เราแผนที่พอร์ต80ในการเป็นเจ้าภาพในการพอร์ต80ในภาชนะที่

ตอนนี้สร้างไฟล์ที่เรียกว่าindex.phpภายในappโฟลเดอร์และใส่ต่อไปในนั้น

<?php phpinfo();

ตรวจสอบให้แน่ใจว่าพอร์ต80นั้นสามารถเข้าถึงได้ผ่านไฟร์วอลล์ของคุณและดำเนินการดังต่อไปนี้

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

ตรวจสอบอีกครั้งว่าบริการเสร็จสิ้น

docker ps

[vultr-instance-ip]เบราว์เซอร์ที่เปิดกว้างและเข้าถึง คุณอาจค้นหาที่อยู่ IP ของ Vultr อินสแตนซ์ของคุณโดยเรียกใช้สิ่งต่อไปนี้

hostname -I

คุณจะเห็นหน้าข้อมูล PHP

การกำหนดค่าคอนเทนเนอร์ MySQL

ภาพ 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 ที่ทำงานได้อย่างสมบูรณ์โดยใช้นักเทียบท่า

ข้อสรุป

ในบทช่วยสอนนี้ฉันได้สาธิตวิธีการตั้งค่าแอปพลิเคชัน PHP ที่ทำงานได้อย่างสมบูรณ์ เราสร้างอิมเมจที่กำหนดเองสำหรับ PHP และ Nginx และกำหนดค่านักเทียบท่าเพื่อแต่งคอนเทนเนอร์ของเรา แม้จะเป็นพื้นฐานและเรียบง่ายการตั้งค่านี้สะท้อนให้เห็นถึงสถานการณ์ในชีวิตจริง

ในคู่มือนี้เราได้สร้างและติดแท็กรูปภาพของเราในพื้นที่ สำหรับการตั้งค่าที่ยืดหยุ่นมากขึ้นคุณสามารถส่งภาพเหล่านี้ไปยังรีจิสทรีนักเทียบท่าได้ คุณสามารถกดไปที่Registry Dockerอย่างเป็นทางการหรือตั้งค่า Registry Docker ของคุณเองก็ได้ ไม่ว่าในกรณีใด ๆ สิ่งนี้จะช่วยให้คุณสร้างภาพของคุณบนโฮสต์หนึ่งและใช้มันในอีกโฮสต์หนึ่ง

สำหรับการใช้งานที่มีรายละเอียดมากขึ้นของdocker-composeคุณควรดูที่เอกสารที่เป็นทางการ

คุณอาจต้องการเพิ่มส่วนขยายเพิ่มเติมทั้งนี้ขึ้นอยู่กับข้อกำหนดของแอปพลิเคชันของคุณและกรอบงาน PHP ที่คุณใช้ สิ่งนี้สามารถทำได้โดยการปรับเปลี่ยนที่Dockerfileใช้ในการสร้างภาพ PHP ของเราเอง อย่างไรก็ตามส่วนขยายบางอย่างจำเป็นต้องมีการติดตั้งเพิ่มเติมในคอนเทนเนอร์ คุณควรดูรายการส่วนขยายใน เอกสารประกอบอย่างเป็นทางการของ PHPเพื่อตรวจสอบข้อกำหนดพื้นฐานของแต่ละส่วนขยาย



Leave a Comment

ติดตั้ง Rancher OS ผ่าน iPXE

ติดตั้ง Rancher OS ผ่าน iPXE

Rancher OS คือการกระจาย Linux ที่เบามากซึ่งสร้างขึ้นรอบ ๆ Docker ระบบปฏิบัติการมีน้ำหนักประมาณ 20MB บทช่วยสอนนี้จะทำให้คุณพร้อมใช้งาน

ติดตั้ง Docker CE บน Ubuntu 18.04

ติดตั้ง Docker CE บน Ubuntu 18.04

บทนำนักเทียบท่าเป็นแอพพลิเคชั่นที่ช่วยให้เราสามารถปรับใช้โปรแกรมที่ทำงานเป็นตู้คอนเทนเนอร์ได้ มันถูกเขียนในภาษาโปรแกรม Go ที่ได้รับความนิยม

วิธีการติดตั้งฮาร์เบอร์บน CentOS 7

วิธีการติดตั้งฮาร์เบอร์บน CentOS 7

Harbour เป็นเซิร์ฟเวอร์รีจิสตรีระดับองค์กรโอเพนซอร์ซที่จัดเก็บและกระจายอิมเมจ Docker ฮาร์เบอร์ขยายโอเพนซอร์ซ

ติดตั้ง Rancher บน CentOS 7

ติดตั้ง Rancher บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร เกริ่นนำ Rancher เป็นแพลตฟอร์มโอเพ่นซอร์สสำหรับการเรียกใช้คอนเทนเนอร์และสร้างบริการคอนเทนเนอร์ส่วนตัว Rancher เป็นฐาน

การติดตั้ง Docker บน CentOS 7

การติดตั้ง Docker บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร นักเทียบท่าเป็นแอปพลิเคชั่นที่อนุญาตให้มีการปรับใช้ซอฟต์แวร์ภายในคอนเทนเนอร์เสมือน มันถูกเขียนในโปรแกรม Go

ติดตั้ง Rancher บน Ubuntu 16.04

ติดตั้ง Rancher บน Ubuntu 16.04

ใช้ระบบที่แตกต่างกันอย่างไร เกริ่นนำ Rancher เป็นแพลตฟอร์มโอเพ่นซอร์สสำหรับการเรียกใช้คอนเทนเนอร์และสร้างบริการคอนเทนเนอร์ส่วนตัว Rancher เป็นฐาน

ปรับใช้และจัดการคอนเทนเนอร์ LXC อย่างปลอดภัยบน Ubuntu 14.04

ปรับใช้และจัดการคอนเทนเนอร์ LXC อย่างปลอดภัยบน Ubuntu 14.04

คอนเทนเนอร์ LXC (คอนเทนเนอร์ Linux) เป็นคุณลักษณะของระบบปฏิบัติการใน Linux ที่สามารถใช้เพื่อเรียกใช้ระบบ Linux ที่แยกได้หลายตัวในโฮสต์เดียว thes

Sticky Session พร��อม Docker Swarm (CE) บน Debian 9

Sticky Session พร��อม Docker Swarm (CE) บน Debian 9

ใช้ระบบที่แตกต่างกันอย่างไร บทนำ Docker Swarm เปลี่ยนเซิร์ฟเวอร์ส่วนบุคคลของคุณให้กลายเป็นคลัสเตอร์ของคอมพิวเตอร์ อำนวยความสะดวกในการปรับขนาดความพร้อมใช้งานสูง

เครื่องมือจัดการกราฟิกสองตัวของ Docker: DockerUI และอู่ต่อเรือ

เครื่องมือจัดการกราฟิกสองตัวของ Docker: DockerUI และอู่ต่อเรือ

ด้วยความช่วยเหลือของแอปพลิเคชัน Vultr Docker คุณสามารถปรับใช้ Docker ในอินสแตนซ์ของเซิร์ฟเวอร์ Vultr ของคุณได้อย่างง่ายดาย ในขณะเดียวกันคุณสามารถอำนวยความสะดวกในการจัดการงานนักเทียบท่า

การติดตั้ง docker-compose บน CoreOS

การติดตั้ง docker-compose บน CoreOS

บทความนี้จะอธิบายวิธีการติดตั้งนักเทียบท่าบน CoreOS ใน CoreOS นั้นโฟลเดอร์ / usr / จะไม่เปลี่ยนรูปดังนั้นเส้นทาง / usr / local / bin ไม่พร้อมใช้งานสำหรับ

บน CoreOS ให้ตั้งค่า Registry Docker ของคุณเอง

บน CoreOS ให้ตั้งค่า Registry Docker ของคุณเอง

เราทุกคนต่างก็รู้จักและชื่นชอบนักเทียบท่าซึ่งเป็นแพลตฟอร์มในการสร้างจัดการและแจกจ่ายคอนเทนเนอร์ของแอปพลิเคชันในหลาย ๆ เครื่อง Docker Inc. เป็นผู้ให้บริการ

ตั้งค่า Sentry ผ่าน Docker บน Ubuntu 16.04

ตั้งค่า Sentry ผ่าน Docker บน Ubuntu 16.04

ใช้ระบบที่แตกต่างกันอย่างไร เกริ่นนำ Sentry เป็นโซลูชั่นโอเพ่นซอร์สสำหรับการติดตามข้อผิดพลาด ยามติดตามข้อยกเว้นและข้อความที่เป็นประโยชน์อื่น ๆ ไปๆมาๆ

ปรับใช้ Kubernetes ด้วย Kubeadm บน CentOS 7

ปรับใช้ Kubernetes ด้วย Kubeadm บน CentOS 7

ภาพรวมบทความนี้มีไว้เพื่อช่วยให้คุณได้รับคลัสเตอร์ Kubernetes และทำงานกับ kubeadm ในเวลาไม่นาน คู่มือนี้จะปรับใช้เซิร์ฟเวอร์สองเครื่องในวันที่

ติดตั้ง Rancher Server บน RancherOS

ติดตั้ง Rancher Server บน RancherOS

ภาพรวม RancherOS เป็นระบบปฏิบัติการที่มีน้ำหนักเบาอย่างไม่น่าเชื่อ (เพียงประมาณ 60 MB) ที่เรียกใช้ระบบ Docker daemon เป็น PID 0 สำหรับการเรียกใช้บริการระบบ

Sticky Session กับ Docker Swarm (CE) บน CentOS 7

Sticky Session กับ Docker Swarm (CE) บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร บทนำ Docker Swarm เปลี่ยนเซิร์ฟเวอร์ส่วนบุคคลของคุณให้กลายเป็นคลัสเตอร์ของคอมพิวเตอร์ช่วยอำนวยความสะดวกในการปรับขนาด

วิธีใช้นักเทียบท่า: การสร้างตัวเทียบท่าแรกของคุณ

วิธีใช้นักเทียบท่า: การสร้างตัวเทียบท่าแรกของคุณ

บทช่วยสอนนี้อธิบายพื้นฐานของการเริ่มต้นใช้งาน Docker ฉันคิดว่าคุณได้ติดตั้ง Docker แล้ว ขั้นตอนในบทช่วยสอนนี้จะใช้กับ

โหลดยอดคงเหลือด้วยนักเทียบท่า

โหลดยอดคงเหลือด้วยนักเทียบท่า

เมื่อใช้งานเว็บแอพพลิเคชั่นโดยปกติคุณต้องการใช้ทรัพยากรให้เกิดประโยชน์สูงสุดโดยไม่ต้องแปลงซอฟต์แวร์ของคุณให้ใช้มัลติเธรด

สร้าง Docker Swarm บน Alpine Linux 3.9.0

สร้าง Docker Swarm บน Alpine Linux 3.9.0

บทนำคู่มือนี้จะแสดงวิธีสร้างและกำหนดค่า Docker Swarm โดยใช้เซิร์ฟเวอร์ Alpine Linux 3.9.0 และ Portainer หลายตัว โปรดระวังด้วย

เริ่มต้นกับ SQL Server 2017 (MS-SQL) บน CentOS 7 พร้อม Docker

เริ่มต้นกับ SQL Server 2017 (MS-SQL) บน CentOS 7 พร้อม Docker

ข้อกำหนดเบื้องต้นเอ็นจิ้น Docker 1.8+ พื้นที่ดิสก์ขั้นต่ำ 4GB RAM ขั้นต่ำ 4GB ขั้นตอนที่ 1 ติดตั้ง Docker เพื่อติดตั้ง SQL-Server, Docker mus

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ในขณะที่วิทยาศาสตร์มีวิวัฒนาการไปอย่างรวดเร็ว โดยรับช่วงต่อความพยายามของเราอย่างมาก ความเสี่ยงในการทำให้ตัวเองตกอยู่ในภาวะภาวะเอกฐานที่อธิบายไม่ได้ก็เพิ่มขึ้นเช่นกัน อ่านว่าภาวะเอกฐานอาจมีความหมายสำหรับเราอย่างไร

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

AI ในการดูแลสุขภาพได้ก้าวกระโดดอย่างมากจากทศวรรษที่ผ่านมา ดังนั้นอนาคตของ AI ในการดูแลสุขภาพจึงยังคงเติบโตทุกวัน