1. 程式人生 > >Docker容器裡部署Apache+PHP+MariaDB+phpMyAdmin

Docker容器裡部署Apache+PHP+MariaDB+phpMyAdmin

前面講到了建立MariaDB,這次在前面的基礎上搭建phpMyAdmin服務,以便友好的管理資料庫MariaDB。MariaDB的docker獨立出來,這樣方便管理,易於擴充套件。這次我們基於Dockerfile方式建立剩餘的服務,Dockerfile也是官方推薦的建立映象方法。
建立Apache+PHP+phpMyAdmin映象 首先啟動MariaDB的容器

在上一節中我們知道資料庫的使用者名稱是root,密碼是123456,但是我們還缺少資料庫的ip地址,我們使用如下方法獲取docker例項的ip地址,是172.17.0.3

[root@test01 ~]# docker ps
CONTAINER ID        IMAGE                      COMMAND             CREATED             STATUS              PORTS                     NAMES
2e78c466919e        liuxin/centos-mariadb:v1   "/root/run.sh"      11 hours ago        Up 3 hours          0.0.0.0:13306->3306/tcp   dreamy_bell
[root@test01 ~]# docker inspect --format '{{ .NetworkSettings.IPAddress }}' 2e78c466919e
172.17.0.3
[root@test01 ~]#
首先建立目錄和檔案
[root@test01 ~]# mkdir phpMyAdmin_dockerfile && cd phpMyAdmin_dockerfile
[root@test01 phpMyAdmin_dockerfile]# ls
config.inc.php  Dockerfile  httpd_init.sh  phptest.php  run.sh
編輯Dockerfile檔案

內容如下。具體每行的意思已經新增到註釋中了

[root@test01 phpMyAdmin_dockerfile]# cat Dockerfile 

##使用的基礎映象
FROM centos:7.4.1708

#新增作者資訊
MAINTAINER liuxin [email protected]

#工作目錄
WORKDIR /root/

#安裝httpd和php,並忽略錯誤
RUN yum -y install httpd
RUN yum -y install php

#安裝mariadb客戶端和php-mysqlnd
RUN yum -y install mariadb
RUN yum -y install php-mysqlnd
RUN yum -y install php-mbstring

#安裝phpmyadmin
RUN yum -y install epel-release
RUN yum -y install phpmyadmin

#設定環境變數,便於管理
ENV MARIADB_ADDR 172.17.0.3
ENV MARIADB_PORT 3306
ENV MARIADB_USER root
ENV MARIADB_PASS 123456

#讓容器支援中文
ENV LC_ALL en_US.UTF-8

#配置phpmyadmin
#ADD phpMyAdmin.conf /etc/httpd/conf.d/phpMyAdmin.conf
ADD config.inc.php /etc/phpMyAdmin/config.inc.php
RUN chown root:apache /etc/phpMyAdmin/config.inc.php
RUN chmod 640 /etc/phpMyAdmin/config.inc.php

#新增php測試介面
ADD phptest.php /var/www/html/phptest.php

#初始化httpd服務
ADD httpd_init.sh /root/httpd_init.sh
RUN chmod 775 /root/httpd_init.sh
RUN /root/httpd_init.sh

#匯出埠
EXPOSE 80

#新增啟動檔案
ADD run.sh /root/run.sh
RUN chmod 775 /root/run.sh

#設定預設啟動
命令
CMD ["/root/run.sh"]
配置phpmyadmin的配置檔案

這裡我直接將寫好的配置檔案上傳,然後修改檔案許可權。也可以通過指令碼來配置,不過比較麻煩,不如這個簡單。改動的配置如下

設定phpmyadmin的登入密碼

$cfg['blowfish_secret'] = '123456'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
設定連線資料庫的賬號、密碼、ip和埠

$cfg['Servers'][$i]['host']          = '172.17.0.3';    // MySQL hostname or IP address
$cfg['Servers'][$i]['port']          = '';              // MySQL port - leave blank for default port
$cfg['Servers'][$i]['user']          = 'root';          // MySQL user
$cfg['Servers'][$i]['password']      = '123456';      // MySQL password (only needed
使用指令碼配置httpd
[root@test01 phpMyAdmin_dockerfile]# cat httpd_init.sh 
#!/bin/sh

sed -i 's/#ServerName www.example.com:80/ServerName localhost:80/g' /etc/httpd/conf/httpd.conf
sed -i '/Require ip/d' /etc/httpd/conf.d/phpMyAdmin.conf
sed -i '//a Require all granted' /etc/httpd/conf.d/phpMyAdmin.conf
新增一個php測試介面
[root@test01 phpMyAdmin_dockerfile]# cat phptest.php 
< ?php
phpinfo();
?>
啟動指令碼
[root@test01 phpMyAdmin_dockerfile]# cat run.sh 
#!/bin/sh

httpd
while true;do sleep 1000;done
建立映象
[root@test01 phpMyAdmin_dockerfile]# docker build -t liuxin/centos-phpmyadmin:v1 ./
Sending build context to Docker daemon 14.34 kB
Step 1 : FROM centos:7.4.1708
 ---> 3afd47092a0e
.
.
省略...
.
.
Step 26 : CMD /root/run.sh
 ---> Using cache
 ---> 19e52b9aceab
Successfully built 19e52b9aceab
[root@test01 phpMyAdmin_dockerfile]#
建立並啟動容器

對映,物理機埠8080到容器的80埠

[root@test01 phpMyAdmin_dockerfile]# docker run -d -p 8080:80 liuxin/centos-phpmyadmin:v1 /root/run.sh
a5a54528879ea95e9bf98a7ba3fbf6236b26f3a54a5305738a4ee770164f105b
[root@test01 phpMyAdmin_dockerfile]# docker ps
CONTAINER ID        IMAGE                         COMMAND             CREATED             STATUS              PORTS                     NAMES
a5a54528879e        liuxin/centos-phpmyadmin:v1   "/root/run.sh"      56 seconds ago      Up 54 seconds       0.0.0.0:8080->80/tcp      sick_ride
2e78c466919e        liuxin/centos-mariadb:v1      "/root/run.sh"      12 hours ago        Up 4 hours          0.0.0.0:13306->3306/tcp   dreamy_bell
[root@test01 phpMyAdmin_dockerfile]#
驗證 開啟web瀏覽器,輸入測試的網頁

Docker容器裡部署Apache+PHP+MariaDB+phpMyAdminDocker容器裡部署Apache+PHP+MariaDB+phpMyAdmin

輸入phpmyadmin的地址,並輸入賬號密碼,看能否登入

Docker容器裡部署Apache+PHP+MariaDB+phpMyAdminDocker容器裡部署Apache+PHP+MariaDB+phpMyAdmin

登入成功,大功告成

Docker容器裡部署Apache+PHP+MariaDB+phpMyAdminDocker容器裡部署Apache+PHP+MariaDB+phpMyAdmin

相關推薦

Docker容器部署Apache+PHP+MariaDB+phpMyAdmin

前面講到了建立MariaDB,這次在前面的基礎上搭建phpMyAdmin服務,以便友好的管理資料庫Mari

Centos7的Docker容器部署xwiki

環境先知: CentOS 7 xwiki 9.7 tomcat 7.0.76 Docker 1.12.6 1.執行一個CentOS7映象的容器. -p指定埠,指定8080是因為tomcat預設是8080,196e0ce0c9fb是映象

從零開始通過idea外掛將一個spring boot專案部署docker容器執行

實操:將一個spring boot專案部署到docker容器裡執行 實驗需要的環境: 騰訊雲+Ubuntu 16.04 x64+idea+外掛docker integration+daocloud 第一步,安裝作業系統 首先在騰訊雲上安裝一個乾淨

Centos7安裝配置Apache+PHP+Mysql+phpmyadmin

css isa roo awk perm mha pack 操作 req 轉載自: Centos7安裝配置Apache+PHP+Mysql+phpmyadmin 一、安裝Apache yum install httpd 安裝成功後,Apache操作命令: systemc

Kubernetes(K8S)集群管理Docker容器部署篇)

kubernetes k8s今天這篇文章教給大家如何快速部署一套Kubernetes集群。K8S集群部署有幾種方式:kubeadm、minikube和二進制包。前兩者屬於自動部署,簡化部署操作,我們這裏強烈推薦初學者使用二進制包部署,因為自動部署屏蔽了很多細節,使得對各個模塊感知很少,非常不利用學習。所以,這

健忘隨發 win10下部署Apache+php+mysql

.exe conf ati php.ini grant ins del 多模塊 pan   win10系統重裝,忽然接到開發任務。想著直接在雲服務器上直接調試,結果發現對於我等菜鳥來講,實在有太多磕磕碰碰會影響整個開發進度。偷懶不可取,所以健忘的我把整個wamp部署再記下來

自定義安裝apache+php+mysql+phpmyadmin

conf sql 功能模塊 安裝apache visual pre 數據庫 html 壓縮包 apache 安裝完後訪問 http://localhost/ php 核心包(用於支持php開發 ) VC6就是legacy Visual Studio 6 compiler,就

Docker容器部署靜態網頁的方法教程

tin uri ash led att bin get acf code 步驟:1.創建映射端口的交互式容器docker run -p 80 --name web -i -t daocloud.io/ubuntu /bin/bash2.安裝Nginxapt-get inst

Docker入門系列之一:在一個Docker容器執行指定的web應用

實現題目描述的這個需求有很多種辦法,作為入門,讓我們從最簡單的辦法開始。 首先使用命令docker ps確保當前沒有正在執行的Docker例項。 執行命令docker run -it nginx: 然後我們另外開一個終端,用docker ps命令檢視這個執行起來的容器例項,Status

centOS7 搭建LAMP伺服器(apache+php+MariaDB

安裝httpd yum install httpd 配置ServerName vi /etc/httpd/conf/httpd.conf 將#ServerName www.example.com:80修改為ServerName localhost:80

Docker容器部署嘗試——多容器通訊(node + mongoDB + nginx)

原因是這樣的 想要部署一個mocker平臺,就在朋友的推薦下選擇了api-mocker這個現成的專案 該專案分為服務端node、客戶端vue、以及資料庫mongoDB 在嘗試直接部署的時候發現需要裝一大堆的環境,node、mongo、nginx啊,特別的麻煩,之前簡單的使用過docker,就在

docker 容器無root 許可權,如何獲得docker容器面的root許可權

首先你的container得正在執行。 可通過sudo docker container ls檢視容器的CONTAINER ID 最後執行命令(其中848669a8722b為上面查到的CONTAINER ID) sudo docker exec -ti -u r

docker容器部署Web專案

宿主機系統選用Centos或者Ubuntu都可以。 大致步驟(對於常用的Linux操作不作多述): 安裝docker 啟動docker服務service start dock

專案docker容器部署步驟

Docker在部署時的一些基本步驟(主要針對我公司的專案環境): 1.專案中存在不需要使用容器化的服務,所以請安裝jdk7、redis、mq、zookeeper、dubbo控制檯 2.映象匯入 #cat sdzn_docker_tomcat.tar|docker impor

docker容器自動化部署落地實踐之四:jenkins安裝與配置

接下來安裝我們的jenkins jenkins在這裡起到了一個非常重要的作用 為我們從git上邊拉取工程後做的所有工作 可以為我們把工程一次性部署到多臺伺服器 這裡由於沒有太多機器 筆者就以單機做示範 多機用ssh部署過去就可以了 下載並安裝 wget https:/

Docker容器部署Web應用

本文直接講解如何在Docker容器中實戰部署一個Web應用程式,關於Docker相關的概念和如何安裝Docker請參考相關資料完成。 第一步:工具準備 演示如何在Docker容器中部署一個Java Web應用程式,需要準備的軟體工具包括:jre,tomcat和webapp

Docker容器部署靜態網頁

一般我們在訪問容器時需要通過容器的埠來訪問,那如何設定容器的埠對映呢?我們通過以下命令來設定: docker run -p ip:hostPort:containerPort [--name] [-i] [-t] 映象名 [COMMAND][ARG...]

Kubernetes(K8S)叢集管理Docker容器部署篇)

今天這篇文章教給大家如何快速部署一套Kubernetes叢集。K8S叢集部署有幾種方式:kubeadm、minikube和二進位制包。前兩者屬於自動部署,簡化部署操作,我們這裡強烈推薦初學者使用二進位制

Docker容器配置之Nginx+Php

#############################Php docker pull php:5.6-fpm mkdir -p /usr/local/docker/php/www #Php 原始碼目錄 mkdir -p /usr/local/docker/php/c

在一個Docker容器執行指定的web應用

實現題目描述的這個需求有很多種辦法,作為入門,讓我們從最簡單的辦法開始。 首先使用命令docker ps確保當前沒有正在執行的Docker例項。 執行命令docker run -it nginx: 然後我們另外開一個終端,用docker ps命令檢視這個執行起來的容器例項,Status