Docker入門基礎之應用實戰

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服務訪問正常!
clipboard.png

安裝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服務訪問正常!
clipboard.png

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

填寫數據庫信息
clipboard.png

安裝完成,wordpress正常使用!
clipboard.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章