在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
配置简单的 LNMP 环境 这里使用 docker-compose 的方式,配置内容如下: docker-compose.yml version: "2" services: # Nginx 1.11.10: https://hub.docker.com/_/nginx/ web: image: nginx:1.11.10 ports: # 将主机的 8080 端口映射到容器的 80 端口 - 8080:80 depends_on: - php # 同 php 一起共享 ./apps 目录 volumes_from: - php # 创建一个数据卷,由 ./images/nginx/config => /etc/nginx/conf.d volumes: - ./images/nginx/config:/etc/nginx/conf.d:ro # PHP 7.1-fpm: https://hub.docker.com/_/php/ php: image: php:7.1-fpm volumes: - ./apps:/mnt/apps # MySQL 5.7: https://hub.docker.com/_/mysql/ database: image: mysql:5.7 # 配置一些环境变量,具体的环境变量细节可以访问上面的网址查看 environment: MYSQL_ROOT_PASSWORD: "root" MYSQL_USER: "dailybird" MYSQL_PASSWORD: "dailybirdo" volumes: - ./database:/var/lib/mysql default.conf 在 server{ listen 80; server_name localhost; root /mnt/apps; index index.php index.html index.htm; location / { index index.php index.html; try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { # 这里使用 php 作为内部域名连接 php 容器 fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } 创建容器 在 docker-compose up -d 这之后,Docker 会创建一个 此外,由于 测试 在 此时,我们只需要在 向 PHP 镜像中添加扩展 如果需要向 PHP 中添加扩展,则需要借助 Dockerfile,并按照官方镜像给出的方法,安装相应的扩展,详情可见Docker - PHP7.1-fpm。如下,可在 PHP 镜像中添加 # Dockerfile 文件 FROM php:7.1-fpm MAINTAINER dailybird <[email protected]> RUN apt-get update && apt-get install -y libpng12-dev libjpeg-dev \ && rm -rf /var/lib/apt/lists/* \ && docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ && docker-php-ext-install gd pdo_mysql zip opcache 相应的,我们也需要将 docker-compose.yml 文件中的 image 改 build 方式,即由 Dockerfile 创建: # ... php: # image: php:7.1-fpm build: # 指出 Dockerfile 所在的文件目录和文件名 context: ./images/php dockerfile: Dockerfile # ... 覆盖 PHP 配置 我们可以通过 # Dockerfile 其他内容... # 将对应的配置文件拷贝到容器中的 PHP 配置目录中,以覆盖原有的 PHP 配置 COPY ./config/php.ini /usr/local/etc/php/conf.d/ COPY ./config/opcache-recommended.ini /usr/local/etc/php/conf.d/ 这两个配置文件的内容为: php.ini memory_limit = 512M post_max_size = 1024M upload_max_filesize = 1024M 更多配置项可见:http://php.net/manual/zh/ini.... opcache-recommended.ini opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=60 opcache.fast_shutdown=4 opcache.enable_cli=1 此外,我们也可以添加一个数据卷将配置文件目录映射到主机上以便随时修改。 制作工具镜像 我们可以制作一个容器,用于安装 git composer 等命令工具以便可以使用它们操作项目文件。这时,我们需要对以下文件进行修改: docker-compose.yml services: # 其他... # 用于 Git,Composer 等工具 console: build: context: ./images/console dockerfile: Dockerfile volumes_from: - php tty: true 由于继承了与 PHP 镜像相同的数据卷,这一工具容器也可以实现对 Dockerfile 接下来需要添加 FROM php:7.1-fpm MAINTAINER dailybird <[email protected]> # 安装 git curl vim zip RUN apt-get update && apt-get install -y git curl vim libfreetype6-dev \ && rm -rf /var/lib/apt/list* \ && pecl install zip \ && docker-php-ext-enable zip # 安装 composer RUN curl -o composer.phar https://getcomposer.org/download/1.4.1/composer.phar \ && chmod +x composer.phar # 配置 composer ,将镜像源改为中国国内 RUN mv composer.phar /usr/local/bin/composer \ && echo 'export PATH="$PATH:$HOME/.composer/vendor/bin"' >> ~/.bashrc \ && . ~/.bashrc \ && composer config -g repo.packagist composer https://packagist.phpcomposer.com # 设置 Git 的身份 RUN git config --global user.name "username" \ && git config --global user.email "[email protected]" 注意按照实际情况修改 Git 信息。 快速构建 LNMP 环境 由于之前的 Dockerfile 中存在不少下载命令,使用 我已经在 Github 上创建了这样一个项目,其中那些需要大量下载的镜像都已制作并上传到镜像仓库,大家可以通过以下方式克隆: git clone [email protected]:dailybird/docker-compose-lnmp.git 使用方式可以参考以下步骤。 自定义 在创建容器前,有一些内容需要按照实际情况进行修改: docker-compose.yml
./images/console/Dockerfile 需要修改 Git 身份信息。 创建容器 在克隆后的目录中执行: docker-compose up --build -d 执行完毕后,使用
目录功能 创建容器后,原目录下会有三个子目录: apps 用于存放项目文件,该目录为 PHP 容器、Nginx 容器,以及工具类容器共享。 database 该目录为数据库目录,与 MySQL 的数据目录映射。 images 该目录包含镜像的 Dcokerfile 文件及配置目录,其中,config 子目录与服务类容器的对应配置文件目录形成映射。 删除容器 当不再使用时,可以使用以下命令删除容器。注意:数据卷不会随之删除。 docker-compose down 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持极客世界。 |
请发表评论