Dockerを使って「PHP-Apache」の環境をゼロから作る

2019年2月8日

Dockerのセットアップ

必要なパッケージの追加
# yum -y install lvm2 device-mapper device-mapper-persistent-data device-mapper-event device-mapper-libs device-mapper-event-libs

 

現在他のDockerがあれば削除
# yum -y remove docker-common docker container-selinux docker-selinux docker-engine

 

wegtインストール
# yum install wget

 

Dockerダウンロード
# wget https://download.docker.com/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

 

Dockerインストール
# yum install -y docker-ce
Dockerのバージョン確認
# docker --version Docker
version 18.09.1, build 4c52b90
Dockerと競合するのでfirewwalldをオフ
# systemctl stop firewalld
# systemctl disable firewalld
iptables 設定初期化
※CeonOS7はデフォルトではiptablesがないのでインストールする必要がある
# yum install iptables-services
# iptables -F
# iptables -t nat -F
# iptables -X
# iptables -Z
# /etc/init.d/iptables save
Dockerを起動
# systemctl start docker
Dockerでコンテナ起動テスト
# docker run ubuntu:14.04 /bin/echo 'Hello world'
Hello world

 

以下のコマンドでCentOS7が入った「centos-test」というコンテナが起動する
# docker run --name centos-test -it centos:7 /bin/bash
使わないコンテナは削除しておく
# docker rm コンテナ名
# docker rm centos-test

 

「Dockerfile」「docker-compose.yml」を使用してコンテナを起動

Dockerfileとは

>ベースとするDockerイメージに対して実行する内容を記述

docker-compose.ymlとは

>複数のコンテナから成るサービスを構築・実行する手順を自動的にし、管理を容易にする機能
まず作業スペースを作る
work_space
├Dockerfile
└docker-compose.yml
ファイルの内容は以下の通り
FROM centos:7
RUN yum update -y
RUN yum install -y sudo
RUN yum install -y epel-release
RUN yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
RUN yum clean all
RUN yum -y install wget
RUN yum -y install httpd
RUN yum -y install --enablerepo=remi,remi-php71 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt php-pgsql
CMD ["/usr/sbin/httpd", "-DFOREGROUND"]
EXPOSE 80

 

version: '3'
services:
  php-apache:
    # image: php
    build: .
    restart: always
    tty: true
    ports:
      - 10080:80
    volumes:
      - ./html:/var/www/html
上記を書いた後、「docker-compose」コマンドを実行
※階層を今回作成した場所に移動する
# cd ../work_space
# docker-compose up
http://IP:80/
Testing 123..
ページが表示されると成功
以下のような「html」フォルダを作成
その中に「index.php」を作成
work_space
├html
│ └index.php
├Dockerfile
└docker-compose.yml
<?php
phpinfo();
PHP Version x.x.xx
と表示されていたら成功

Docker

Posted by hapoopaka