1. 程式人生 > >Docker 基於centos7 的LAMP環境搭建 (實驗一)

Docker 基於centos7 的LAMP環境搭建 (實驗一)

docker mysql docke docker centos7

前言

為方便其他開源軟件的配置實驗,利用docker技術基於centos7 系統搭建了lamp 環境,其中將部署mysql 、apache、php5.6。提供基礎的數據存儲,還將部署phpmyadmin 、memadmin 等常用的數據層管理工具。由於大部分都是命令操作,將略去大段的語言描述,只需按照如下命令操作即可獲得一個完整的LAMP 環境。

環境安裝

docker pull centos
docker run --name centos -d -i -t centos /bin/bash
docker attach centos

>#更新yum 並安裝工具
yum update
yum install -y net-tools mariadb mariadb-server httpd epel-release autoconf automake

#配置php5.6 的源
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum install -y --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof php-gd
mkdir -p /var/run/mariadb
chown -R mysql:mysql /var/run/mariadb
chown -R mysql:mysql /var/lib/mysql
Ctrl-p Ctrl-q #退出

#保存鏡像
docker commit -a "mir355" -m "Centos7 http mysql5 php56" centos private/lamp:v1

目錄規劃

mkdir -p /Volumes/MacSoft/data/lamp/config/phpd
mkdir -p /Volumes/MacSoft/data/lamp/mysql
mkdir -p /Volumes/MacSoft/data/lamp/logs/httpd
mkdir -p /Volumes/MacSoft/data/webapps/lamp

docker cp centos:etc/my.cnf lamp/config/
docker cp -L centos:etc/httpd lamp/config/

mysql 目錄

配置文件
-v /Volumes/MacSoft/data/lamp/config/my.cnf:/etc/my.cnf
數據目錄
-v /Volumes/MacSoft/data/lamp/mysql:/var/lib/mysql
日誌文件
-v /Volumes/MacSoft/data/lamp/logs:/var/log/mariadb

apache 目錄

配置文件
-v /Volumes/MacSoft/data/lamp/config/httpd:/etc/httpd
webapps 目錄
-v /Volumes/MacSoft/data/webapps:/var/www
日誌文件
-v /Volumes/MacSoft/data/lamp/logs/httpd:/var/log/httpd

運行鏡像

docker run -d -i -p 3306:3306 -p 80:80 --restart=always -h lamp --name lamp \
-v /Volumes/MacSoft/data/lamp/config/my.cnf:/etc/my.cnf \
-v /Volumes/MacSoft/data/lamp/mysql:/var/lib/mysql \
-v /Volumes/MacSoft/data/lamp/logs:/var/log/mariadb \
-v /Volumes/MacSoft/data/lamp/config/httpd:/etc/httpd \
-v /Volumes/MacSoft/data/webapps:/var/www \
-v /Volumes/MacSoft/data/lamp/logs/httpd:/var/log/httpd \
-t private/lamp:v1

docker exec -it lamp bash

>cd /etc/httpd
ln -s ../../var/log/httpd logs
ln -s ../../usr/lib64/httpd/modules modules
ln -s /run/httpd run
mkdir -p /var/www/html
chown -R apache:apache /var/www/html
mkdir -p /var/run/mariadb
chown -R mysql:mysql /var/run/mariadb
/usr/sbin/httpd -DFOREGROUND &
/usr/bin/mysqld_safe --basedir=/usr &
‘/usr/bin/mysqladmin‘ -u root password ‘new-password‘

docker commit -a "mir355" -m "Centos7 http mysql5 php56" lamp private/lamp:v1


結語

1、安裝過程還算順利,遇到docker 下systemctl 無法移動的問題,經過baidu 查找確認是啟動參數問題,用如下方法啟用,支持 systemctl 服務(建議調試時使用,服務運行時意義不大)
docker run --privileged --name centos -d -i -t centos /usr/sbin/init
2、另遇到的問題時容器內服務無法隨容器自啟動,待研究明白了再更新
如何自啟動?

Docker 基於centos7 的LAMP環境搭建 (實驗一)