我已經開始與碼頭工作並構建了一個工作示例,如https://codeable.io/wordpress-developers-intro-docker所示。由於部署將位於emebedded系統上,因此需要Docker容器的足夠小的空間。碼頭集裝箱:它們如何一起工作?
但我不知道這是如何融合在一起的。
有兩個Dockerfiles,一個是Nginx的:
FROM nginx:1.9-alpine
COPY nginx.conf /etc/nginx/conf.d/default.conf
的nginx.conf
被定義爲:
server {
server_name _;
listen 80 default_server;
root /var/www/html;
index index.php index.html;
access_log /dev/stdout;
error_log /dev/stdout info;
location/{
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
include fastcgi_params;
fastcgi_pass my-php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
其他Dockerfuile是PHP:
Dockerfile.php-fpm:
FROM php:7.0.6-fpm-alpine
RUN docker-php-ext-install -j$(grep -c ^processor /proc/cpuinfo 2>/dev/null || 1) \
iconv gd mbstring fileinfo curl xmlreader xmlwriter spl ftp mysqli
VOLUME /var/www/html
最後一切都一起在docker-compose.yml中:
個version: '2'
services:
my-nginx:
build: .
volumes:
- .:/var/www/html
ports:
- "8080:80"
links:
- my-php
my-php:
build:
context: .
dockerfile: Dockerfile.php-fpm
volumes:
- .:/var/www/html
ports:
- "9000:9000"
泊塢窗容器啓動時使用
$ docker-compose build
$ docker-compose up
,一切工作 - 這是一種魔力!
這裏是(一些)我的問題,以瞭解發生了什麼事情:
- 如何nginx的容器瞭解PHP的容器?
- 從nginx調用PHP時,PHP進程運行在哪個容器中? ?
- 數據如何從nginx傳遞到PHP並返回?
- 這是碼頭使用(3個容器爲簡單的 網絡服務器應用程序)正確的方式來使用碼頭或 這是容器矯枉過正嗎?
- 這個碼頭架構如何縮放以增加 的負載?我可以將它用於生產嗎?
- 容器在主機上使用相同的卷(
./
)。 當使用PHP框架作爲Yii2時,難道不是更好的 將卷移動到PHP或Nginx容器?