Centos
docker-compose centos7 nginx
我想在 Docker for Mac 上模擬一個帶有 phpfpm、nginx、mysql 的 centos7 伺服器。
目前我的 . 中有這個
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 的鏡像,您可能需要考慮建構自己的鏡像。
在這種情況下,您的所有 Dockerfile 都需要以:
FROM centos
一個基於 centos 的 nginx 容器可以用以下方式建構:
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 更合適的選擇。
請務必考慮到 docker 容器根本不需要在其中安裝任何作業系統 - 完全有可能使用單個二進製文件建構容器(這實際上對於用 go 編寫的程序來說有些常見,AFAIK)。容器旨在以程序為中心 - 也就是說,您通常在前台執行一個程序,每個容器(如 nginx、php-fpm)。容器中的“作業系統”基本上只是一組命令——容器“作業系統”沒有自己的核心,而是使用主機核心。您“安裝” CentOS,以便您可以使用 CentOS 工具(對於您選擇的作業系統也是如此) - 但生成的系統不一定與使用 CentOS 的 VM 或物理主機相同(特別是因為核心可能很不同,並具有不同的功能)。