码头工人.从 Ubuntu 镜像访问 php 镜像



我正在尝试创建我的第一个基于 docker 的开发环境。

我的主机是视窗 10 我需要在单独的图像中创建堆栈 Ubuntu:14.04 + php。

Dockerfile forubuntu:FROM ubuntu:14.04

Dockerfile forphp:FROM php:5.6-fpm

就这么简单。此时没有任何其他参数。

docker-compose.yml

version: '3.7'
services:
os:
build:
context: .
dockerfile: .docker/ubuntu/Dockerfile
container_name: ubuntu
tty: true
links:
- php
php:
build: ./.docker/php
container_name: php

然后docker-compose up --build

结果是:

Building os
Step 1/2 : FROM ubuntu:14.04
---> 971bb384a50a
Step 2/2 : LABEL maintainer="Andrey Kryukov"
---> Using cache
---> 3d71726444ee
Successfully built 3d71726444ee
Successfully tagged nnrservice_os:latest
Building php
Step 1/2 : FROM php:5.6-fpm
---> 8d3dc6499e61
Step 2/2 : LABEL maintainer="Andrey Kryukov"
---> Using cache
---> b6fc0c83131b
Successfully built b6fc0c83131b
Successfully tagged nnrservice_php:latest
Starting ubuntu ... done
Starting php    ... done
Attaching to ubuntu, php
php    | [24-Aug-2018 05:14:01] NOTICE: fpm is running, pid 1
php    | [24-Aug-2018 05:14:01] NOTICE: ready to handle connections

然后docker-compose exec os /bin/sh结果是:

#

没有任何错误。所以我希望 php 在我的控制台中可用。但是没有!

# php -v
/bin/sh: 1: php: not found
#

我做错了什么?或者也许我失去了一些重要的概念?

docker-compose exec os /bin/sh

您正在连接到os容器并尝试执行php,该PHP容器中。显然,这是行不通的,因为操作系统容器只有基本实用程序,而不是PHP容器中的PHP库和PHP-FPM应用程序,如

php    | [24-Aug-2018 05:14:01] NOTICE: fpm is running, pid 1
php    | [24-Aug-2018 05:14:01] NOTICE: ready to handle connection

为什么需要操作系统容器和 PHP 容器?这违背了目的。PHP 容器将具有 PHP 的基本操作系统 + 所需的应用程序/库。你不需要两个,如果你的目标是运行PHP。

最新更新