您好,登錄后才能下訂單哦!
這篇文章主要講解了“Docker容器里部署Apache+PHP+MariaDB+phpMyAdmin的步驟”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Docker容器里部署Apache+PHP+MariaDB+phpMyAdmin的步驟”吧!
創建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 842887233@qq.com #工作目錄 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瀏覽器,輸入測試的網頁
輸入phpmyadmin的地址,并輸入賬號密碼,看能否登錄
登錄成功,大功告成
感謝各位的閱讀,以上就是“Docker容器里部署Apache+PHP+MariaDB+phpMyAdmin的步驟”的內容了,經過本文的學習后,相信大家對Docker容器里部署Apache+PHP+MariaDB+phpMyAdmin的步驟這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。