首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >船坞-合成centos7 nginx

船坞-合成centos7 nginx
EN

Server Fault用户
提问于 2017-03-13 23:12:59
回答 2查看 2.5K关注 0票数 1

我想用phpfpm、nginx、mysql在Docker上模拟一个centos7服务器。

目前,我在我的docker-compose.yml中有这个,但是,还没有说明任何地方的操作系统。

代码语言:javascript
运行
复制
version: '2'

services:

    web:
        build: .
        image: nginx:latest
        ports:
            - "8080:80"
        volumes:
            - ./code:/code
            - ./default.conf:/etc/nginx/conf.d/default.conf
        networks:
            - code-network
    php:
        image: php:fpm
        volumes:
            - ./code:/code
            - ./log.conf:/usr/local/etc/php-fpm.d/zz-log.conf
        networks:
            - code-network

networks:
    code-network:
        driver: bridge

我认为最好将这些服务保持为单独的容器,但是,我认为它们都需要是不同的CentOS实例,对吗?

我该如何设置这个,或者,有没有更好的方法来处理这个问题?

非常感谢,

EN

回答 2

Server Fault用户

回答已采纳

发布于 2017-03-15 15:22:11

如果您绝对希望只使用基于centOS的图像,您可能需要考虑构建自己的映像。

在这种情况下,您的所有Dockerfile都需要从以下内容开始:

代码语言:javascript
运行
复制
FROM centos

基于centos的nginx容器可以使用以下方法构建:

代码语言:javascript
运行
复制
FROM centos

RUN yum install -y epel-release 
RUN yum update -y
RUN yum install -y nginx

ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]

不过,听起来你可能有点想读一下对接器--既然你提到想要“模仿运行centOS的服务器”,那么虚拟机可能是比对接机更合适的选择。

一定要考虑到,码头容器根本不需要在“它们”中有任何操作系统--用一个二进制文件构建一个容器是完全可能的(对于用go,AFAIK编写的程序来说,这实际上是比较常见的)。容器是以进程为中心的-也就是说,您运行一个程序,通常在前台,每个容器(所以nginx,php)。容器中的'OS‘基本上只是一组命令--容器'OS’显然没有自己的内核,而是使用主机内核。您可以“安装”CentOS,以便您可以使用CentOS工具(对于您选择的操作系统也是如此)--但是最终的系统不一定与使用CentOS的VM或物理主机相同(特别是因为内核很可能不同,并且有不同的特性)。

票数 3
EN

Server Fault用户

发布于 2017-03-15 16:16:32

您在示例中使用的图像既基于debian (nginxphp:fpm),也是正式的iamges。

如果您真的想模仿centos服务器,最好的方法是将您自己的映像构建为注释@iwaseatenbyagrue在前一个答复中

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/838084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档