當我們掌握了Docker鏡像和容器的基本用法後,我們現在能做些什麼事情呢?現在我們就來看看使用Docker容器如何安裝常見的軟體,然後運作一個動态網站。
下面我們來學習:
- 1、安裝Nginx
- 2、安裝PHP
- 3、使用MySQL服務
- 4、運作wordpress部落格
安裝Nginx
運作一個Alpine的容器,選擇Alpine作為系統基礎鏡像是因為Alpine輕巧的體積,基礎鏡像隻有5.53MB,相比ubuntu鏡像的88.9MB要小十幾倍。
root@ubuntu:~# docker run -it -p 8080:80 alpine sh
安裝nginx
apk add nginx
修改nginx配置
vi /etc/nginx/conf.d/default.conf
default.conf内容如下:
server {
listen 80 default_server;
root /home/www;
index index.php index.html;
}
建立Hello World
mkdir /home/www && echo "Hello World" > /home/www/index.html
建立/run/nginx目錄
mkdir /run/nginx
啟動nginx
nginx
在浏覽器中通路
http://192.168.43.122:8080nginx安裝成功,WEB服務通路正常!
安裝PHP
現在我們來安裝PHP,方法還是一樣,使用
apk add
指令來安裝php7,php-fpm以及相關擴充。
apk add --no-cache php7 php7-fpm php7-ftp php7-pdo php7-mysqli php7-simplexml php7-xmlwriter php7-zlib php7-imagick php7-memcached php7-sockets php7-mcrypt php7-zip php7-pgsql php7-pdo_odbc php7-odbc php7-curl php7-iconv php7-xml php7-json php7-gd php7-session php7-opcache php7-pdo_sqlite php7-mbstring php7-common php7-pdo_mysql
以上順帶安裝了很多php擴充,可根據實際需求增減。
現在啟動php-fpm7
php-fpm7
修改nginx配置,添加php支援
vi /etc/nginx/conf.d/default.conf
内容如下
server {
listen 80 default_server;
root /home/www;
index index.php index.html;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /home/www$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
在網站目錄中建立phpinfo.php
echo "<?php phpinfo(); ?>" > /home/www/phpinfo.php
重新開機nginx
nginx -s reload
http://192.168.43.122:8080/phpinfo.php PHP安裝成功,WEB服務通路正常!
使用MySQL服務
我們不在Alpine裡面安裝MySQL,為了使用效率,這裡我們直接使用官方鏡像即可,新開一個ssh終端連接配接主控端,在home目錄下建立database目錄
mkdir /home/database
使用官方mysql5.7鏡像運作一個容器,root密碼設定為123456,映射3306端口,并将主控端/home/database目錄挂載到容器/var/lib/mysql目錄
docker run -dit -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -v /home/database:/var/lib/mysql mysql:5.7
docker ps
檢視容器
上圖中看到,我們現在運作了2個容器,1個是安裝了nginx和php的Alpine容器,1個是mysql5.7的容器
進入mysql容器
docker exec -it c8c85af64822 sh
登入并建立wordpress資料庫
#用root使用者登入
mysql -u root -p
#建立wordpress資料庫
mysql> CREATE DATABASE wordpress;
運作wordpress部落格
php網站環境和mysql資料庫都準備好了,現在我們回到Alpine的ssh終端上,在容器内下載下傳一個wordpress網站程式。
#進入網站目錄
cd /home/www/
#下載下傳wordpress
wget https://wordpress.org/latest.tar.gz
#解壓
tar zxvf latest.tar.gz
#将wordpress目錄下的檔案複制到www目錄下
cp -ri /home/www/wordpress/* /home/www/
#設定777權限
chmod -R 777 /home/www/
,可以看到wordpres頁面
填寫資料庫資訊
安裝完成,wordpress正常使用!