當咱們掌握了Docker鏡像和容器的基本用法後,咱們如今能作些什麼事情呢?如今咱們就來看看使用Docker容器如何安裝常見的軟件,而後運行一個動態網站。php
下面咱們來學習:html
運行一個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,方法仍是同樣,使用 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服務訪問正常!
咱們不在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;
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正常使用!