您的当前位置:首页正文

Docker 安装 nginx-php-mysql-phpmyadmin

2024-11-07 来源:个人技术集锦

1. 安装NGINX

(1)查找  上的 nginx 镜像        docker search nginx

(2)拉取   上的 nginx 镜像       docker pull nginx   (这里拉取最新的镜像)

(3)NGINX 部署  将镜像容器内的NGINX映射到真实机器上  

  • www: 目录将映射为 nginx 容器配置的虚拟目录。
  • logs: 目录将映射为 nginx 容器的日志目录。
  • conf: 目录里的配置文件将映射为 nginx 容器的配置文件。

部署命令

$ docker run -d -p 8082:80 --name runoob-nginx-test-web -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/logs:/var/log/nginx nginx

命令说明:

  • -p 8082:80: 将容器的 80 端口映射到主机的 8082 端口。

  • --name runoob-nginx-test-web:将容器命名为 runoob-nginx-test-web。

  • -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:将我们自己创建的 nginx.conf 挂载到容器的 /etc/nginx/nginx.conf。

  • -v ~/nginx/logs:/var/log/nginx:将我们自己创建的 logs 挂载到容器的 /var/log/nginx。

$ cd ~/nginx/www

在www文件夹内创建一个index.html 内容随便,  访问真实机器的0.0.0.0:8082 可以看到index.html的内容说明NGINX部署成功

 

2.部署PHP

(1)查找Docker Hub上的php镜像

(2)拉取Docker Hub上的php镜像   我们拉取官方的镜像,标签为5.6-fpm   之后运行docker images 看到php 5.6-fpm就说明我们拉取成功了

(3) 

Nginx + PHP 部署

Nginx 部署可以查看:,一些 Nginx 的配置参考这篇文章。

启动 PHP:

$ docker run --name  myphp-fpm -v ~/nginx/www:/www  -d php:5.6-fpm

命令说明:

  • --name myphp-fpm : 将容器命名为 myphp-fpm。

mkdir ~/nginx/conf/conf.d 
server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm index.php;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /www/$fastcgi_script_name;
        include        fastcgi_params;
    }
}

配置文件说明:

  • php:9000: 表示 php-fpm 服务的 URL,下面我们会具体说明。
  • /www/: 是 myphp-fpm 中 php 文件的存储路径,映射到本地的 ~/nginx/www 目录。

启动 nginx:

docker run --name my-php-nginx -p 8083:80 -d     -v ~/nginx/www:/usr/share/nginx/html:ro     -v ~/nginx/conf/conf.d:/etc/nginx/conf.d:ro     --link myphp-fpm:php     nginx    :ro 指定为只读。

(5)浏览器打开 http://127.0.0.1:8083/index.php,显示phpinfo 信息就说明成功了

3.部署mysql

(1) 查找Docker Hub上的mysql镜像

(2)拉取Docker Hub上的mysql镜像 (这里拉取 mysql:5.6)docker images 看到有mysql就说明成功了

(3)使用mysql镜像并运行容器

docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
21cb89213c93d805c5bacf1028a0da7b5c5852761ba81327e6b99bb3ea89930e

命令说明:

  • -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。

  • -e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。

(4)   docker ps 查看mysql运行情况

CONTAINER ID    IMAGE         COMMAND                  ...  PORTS                    NAMES
21cb89213c93    mysql:5.6    "docker-entrypoint.sh"    ...  0.0.0.0:3306->3306/tcp   mymysql

4.部署phpmyadmin

(1)在Docker Hub 上查找 PHPmyadmin  

(2)拉取phpmyadmin  docker pull phpmyadmin/phpmyadmin (这里拉取的是官方的)

(3)运行PHPmyadmin   

docker run --name phpmyadmin -d --link mymysql:db -p 8080:80 phpmyadmin/phpmyadmin  这里的mymysql是上面以经运行了的容器。 如果 运行 http://localhost:8080 看到phpmyadmin 就说明我们成功了。

到此文章结束。

写的不好,感谢阅读!

 

Top