Docker入門基礎之應用實戰

當咱們掌握了Docker鏡像和容器的基本用法後,咱們如今能作些什麼事情呢?如今咱們就來看看使用Docker容器如何安裝常見的軟件,而後運行一個動態網站。php

下面咱們來學習:html

  • 一、安裝Nginx
  • 二、安裝PHP
  • 三、使用MySQL服務
  • 四、運行wordpress博客

安裝Nginx

運行一個Alpine的容器,選擇Alpine做爲系統基礎鏡像是由於Alpine輕巧的體積,基礎鏡像只有5.53MB,相比ubuntu鏡像的88.9MB要小十幾倍。mysql

root@ubuntu:~# docker run -it -p 8080:80 alpine sh

安裝nginxnginx

apk add nginx

修改nginx配置sql

vi /etc/nginx/conf.d/default.conf

default.conf內容以下:docker

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目錄json

mkdir /run/nginx

啓動nginxubuntu

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正常使用!

相關文章
相關標籤/搜索