Linux

Docker Lamp-Stack CentOS7でApacheの起動

バーチャルマシンみたいに使う場合の構成。

プロセス毎にコンテナ作るのが正当ですが、開発環境なら1つにまとめちゃって配布してもOK。

 

 

docker-composeインストール

sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

一度ログインし直す(重要)
$ exit

 

$ docker-compose -v
docker-compose version 1.22.0, build f46880fe

 

Dockerインストール

$ sudo yum install -y docker
$ sudo usermod -aG docker ${USER}

sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker

 

$ mkdir -p $HOME/docker-lamp/{mysql,php,centos}
$ mkdir -p $HOME/docker-lamp/data/{html,db}

 

 

Docker 構成ファイル作成

$ vi $HOME/docker-lamp/data/html/index.php


<?php

echo "Hello Docker-Lamp!";

 

$ vi $HOME/docker-lamp/docker-compose.yml


version: '2'
services:
  mysql:
    build: ./mysql
    container_name: "mysql"
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: dbRootPassword
      MYSQL_DATABASE: appdb
      MYSQL_USER: appdbuser
      MYSQL_PASSWORD: appDbPassword
    volumes:
      - ./data/db:/var/lib/mysql
    restart: always
    privileged: true
  centos:
    depends_on:
      - mysql
    build: ./centos
    container_name: "centos"
    ports:
      - "80:80"
    working_dir: /var/www/html
    volumes:
      - ./data/html:/var/www/html
    restart: always
    privileged: true
volumes:
    data:

 

$ vi $HOME/docker-lamp/mysql/my.cnf

[mysqld]
character-set-server=utf8

 

$ vi $HOME/docker-lamp/mysql/Dockerfile

FROM mysql:5.7
COPY ./my.cnf /etc/mysql/conf.d/
EXPOSE 3306

 

$ vi $HOME/docker-lamp/php/php.ini

[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"

 

$ vi $HOME/docker-lamp/centos/Dockerfile


FROM centos:7

## update yum
RUN yum -y update
RUN yum -y install yum-utils
RUN yum clean all

RUN yum -y install epel-release
RUN yum -y groupinstall "Development Tools"
RUN yum -y install wget git zsh curl


## install remi repo
RUN wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
RUN rpm -Uvh remi-release-7*.rpm
RUN yum-config-manager --enable remi-php70


## install php7"
RUN \
  yum -y install \
    php php-common \
    php-mbstring \
    php-mcrypt \
    php-devel \
    php-xml \
    php-mysqlnd \
    php-pdo \
    php-opcache --nogpgcheck \
    php-bcmath

## install composer
RUN curl -sS https://getcomposer.org/installer | php && \
  mv composer.phar /usr/local/bin/composer


## timezone setting
RUN cp /etc/localtime /etc/localtime.org
RUN ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime


## Apache install and Start
RUN yum -y install httpd
RUN systemctl enable httpd


# exec.
CMD ["/sbin/init"]

 

docker-lampのビルドと起動

$ cd $HOME/docker-lamp/
$ docker-compose build && docker-compose up -d

 

http://IPアドレス/

 

 

サービスを停止させる
$ docker-compose stop

コンテナの停止、削除、さらにネットワーク、記憶領域を全て削除
$ docker-compose down


コンテナをすべて削除
$ docker rm -f `docker ps -a -q`

イメージをすべて削除
$ docker rmi $(docker images -q) -f

コンテナの全停止とイメージの削除
$ docker stop $(docker ps -q) && docker rmi $(docker images -q) -f

 

 

Amazonおすすめ

iPad 9世代 2021年最新作

iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとんどの人には通常のiPadをおすすめします><

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)