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

相关文章
相关标签/搜索