基于Docker-compose.yml部署lnmp

段曦
2023-12-01

基于Docker-compose.yml部署lnmp

安装docker-compose

[root@node1 ~]# curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
[root@node1 ~]# chmod +x /usr/local/bin/docker-compose 
[root@node1 ~]# ll /usr/local/bin/docker-compose
[root@node1 harbor]# docker-compose --version

创建相对应的文件和目录

[root@localhost ~]# tree lamp
lamp
├── apache
├── docker-compose.yml
└── php
    └── Dockerfile
2 directories, 2 files

编写php的Dockerfile文件

[root@localhost ~]# vim lamp/php/Dockerfile
FROM php:7.0-fpm
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone
RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libmcrypt-dev \
        libpng-dev \
        libmemcached-dev \
        zlib1g-dev \
        libcurl4-openssl-dev \
        libxml2-dev \
        --no-install-recommends && rm -rf /var/lib/apt/lists/* \
    && docker-php-ext-install -j$(nproc) \
        iconv mcrypt gettext curl mysqli pdo pdo_mysql zip \
        mbstring bcmath opcache xml simplexml sockets hash soap \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd

CMD ["php-fpm", "-F"]

编写docker-compose.yml

[root@localhost ~]# vim lamp/docker-compose.yml
version: "3"

services:
  mysql:
    hostname: mysql
    restart: always
    image: mysql:5.6
    container_name: mysql
    ports:
      - "3306:3306"
    volumes:
      - mysql-config:/etc/mysql
      - mysql-log:/var/log/mysql
      - mysql-data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_USER: user
      MYSQL_PASSWORD: user123
  php:
    hostname: php
    restart: always
    container_name: php
    build:
      context: ./php
      dockerfile: Dockerfile
    ports:
      - "9000:9000"
    links:
      - mysql:mysql
    volumes:
      - php-config:/usr/local/etc
  apache:
    hostname: httpd
    restart: always
    container_name: httpd
    image: phsama/httpd:v0.2
    ports:
      - "80:80"
      - "443:443"

volumes:
  mysql-config:
  mysql-log:
  mysql-data:
  php-config:
  apache-config:
  apache-log:
  apache-html:

启动服务

[root@hfnt compose_lnmp]# docker-compose up -d
Creating network "compose_lnmp_default" with the default driver
Creating volume "compose_lnmp_mysql-config" with default driver
Creating volume "compose_lnmp_mysql-log" with default driver
​```
重启
[root@hfnt compose_lnmp]# docker-compose restart
 类似资料: