天天看點

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服務通路正常!

Docker入門基礎之應用實戰

安裝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服務通路正常!

Docker入門基礎之應用實戰

使用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頁面

Docker入門基礎之應用實戰

填寫資料庫資訊

Docker入門基礎之應用實戰

安裝完成,wordpress正常使用!

Docker入門基礎之應用實戰