我想模拟一个centos7服务器与phpfpm,nginx,MySQL的Docker for Mac。
目前我在docker-compose.yml有这个,但是,还没有提到任何有关操作系统的地方。
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实例,对吗?
我怎么去设置这个,或者,有没有更好的方法来处理这个问题呢?
非常感谢,
如果您绝对只想使用基于centos的图像,则可能需要考虑构build自己的图像。
在这种情况下,所有的Dockerfiles都需要从以下开始:
FROM centos
一个基于centos的nginx容器可能会被构build:
FROM centos RUN yum install -y epel-release RUN yum update -y RUN yum install -y nginx ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]
听起来你可能想在Docker上稍微阅读一下,因为你提到要模仿一个运行centOS的服务器,那么它可能是一个比docker更合适的select。
请注意,docker容器根本就不需要任何操作系统 – 完全可以用一个二进制文件构build一个容器(实际上这对于用AFAIK编写的程序来说实际上是相当普遍的)。 容器是以stream程为中心的 – 也就是说,你运行一个程序,通常在前台,每个容器(所以nginx,php-fpm)。 容器中的“OS”基本上只是一组命令 – 容器“OS”明显没有自己的内核,而是使用主机内核。 你“安装”CentOS,以便你可以使用CentOS工具(并且对于你select的操作系统也是一样的),但是最终的系统并不一定和使用CentOS的VM或物理主机一样(特别是因为内核可能不同,并且具有不同的特征)。
你在这个例子中使用的图像都是基于debian( nginx , php:fpm )的,并且是官方的iamges。
如果你真的想模仿centos服务器,也许最好的想法是build立自己的图像作为评论@iwaseatenbyagrue在以前的答案