Docker入門基礎之應用實戰
當我們掌握了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:8080
nginx安裝成功,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/
在瀏覽器中訪問 http://192.168.43.122:8080,可以看到wordpres頁面
填寫數據庫信息
安裝完成,wordpress正常使用!