macm1docker安装nginx、配置php环境(dockerm1phpmysql)Mac M1 安装Docker
3、Docker启动
在启动台到Docker软件图标点击启动,稍等⽚刻启动成功,屏幕右上⾓菜单栏显⽰了⼀个鲸鱼图标,点击可看到Docker运⾏状态。
4、打开终端,执⾏相关命令
docker --version 查看Docker版本信息
docker info 查看Docker的具体信息
docker images 查看本地镜像(刚安装的查询为空)
docker ps 查看运⾏的容器(刚安装的查询为空)
docker pull (镜像名) 拉取镜像
docker安装PHP开发环境(mac+nginx+php+mysql)
1、Docker 安装 Nginx
Nginx 是⼀个⾼性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务 。
1、查看可⽤的 Nginx 版本
$ docker pull nginx:latest
3、查看本地镜像
使⽤以下命令来查看是否已安装了 nginx。
$ docker images
sh-3.2# docker images
REPOSITORY              TAG      IMAGE ID      CREATED        SIZE
nginx                  latest    04bd8b4e0d30  12 days ago    126MB
sh-3.2#
在上图中可以看到我们已经安装了最新版本(latest)的 nginx 镜像。
2、Docker 安装 PHP
根据⾃⼰项⽬选择合适PHP版本,这⾥选择拉取官⽅的镜像,标签为7.1-fpm。
$ docker pull php:7.1-fpm
等待下载完成后,我们就可以在本地镜像列表⾥查到REPOSITORY为php,标签为7.1-fpm的镜像。
sh-3.2# docker images
REPOSITORY              TAG      IMAGE ID      CREATED        SIZE
nginx                  latest    04bd8b4e0d30  12 days ago    126MB
php                    7.1-fpm  88dab47a90c7  20 months ago  357MB
sh-3.2#
3、Docker 安装 MySQL
docker官⽅镜像库⽬前还没有适配mysql的m1版本,但是我们可以从mysql官⽹拉取适配m1芯⽚的arm版本。
1、下载mysql镜像
$ docker pull mysql/mysql-server:latest
2、查看下载的镜像
sh-3.2# docker images
REPOSITORY              TAG      IMAGE ID      CREATED        SIZE
nginx                  latest    04bd8b4e0d30  12 days ago    126MB
mysql/mysql-server      latest    f7f3acd8a80c  13 days ago    497MB
php                    7.1-fpm  88dab47a90c7  20 months ago  357MB
sh-3.2#
docker配置PHP开发环境(m1mac+nginx+php+mysql)
1、创建⽬录
mkdir -p /Users/sui/docker/nginx/conf.d &&mkdir /Users/sui/www &&cd /Users/sui/docker/nginx/conf.d &&sudo f 2、启动php-fpm
解释执⾏ php 需要 php-fpm,先让它运⾏起来。
mysql下载选x86还是armdocker run --name sui-php -d \
-v /Users/sui/www:/var/www/html:ro \
php:7.1-fpm
–name sui-php 是容器的名字。
/Users/sui/www 是本地 php ⽂件的存储⽬录,/var/www/html 是容器内 php ⽂件的存储⽬录,ro 表⽰只读(不加默认可读写)。
3、编辑 nginx 配置⽂件
配置⽂件位置:/Users/sui/docker/nginx/conf.f
server {
listen      80;
server_name  localhost;
location / {
root  /usr/share/nginx/html;
index  index.html index.htm;
}
error_page  500502503504  /50x.html;
location = /50x.html {
root  /usr/share/nginx/html;
}
location ~ \.php$ {
fastcgi_pass  php:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  /var/www/html/$fastcgi_script_name;
include        fastcgi_params;
}
}
说明:
php:9000 表⽰ php-fpm 服务的访问路径,下⽂还会提及。
/var/www/html 是 sui-php 中 php ⽂件的存储路径,经 docker 映射,变成本地路径 /Users/sui/www(可以再看⼀眼 php-fpm 启动命令)。
4、启动 nginx:
docker run --name sui-nginx -p 80:80 -d \
-v /Users/sui/www:/usr/share/nginx/html:ro \
-v /Users/sui/docker/nginx/conf.d:/etc/nginx/conf.d:ro \
--link sui-php:php \
nginx
-p 80:80 ⽤于添加端⼝映射,把 sui-nginx 中的 80 端⼝暴露出来。
/Users/sui/www 是本地 html ⽂件的存储⽬录,/usr/share/nginx/html 是容器内 html ⽂件的存储⽬录。
/Users/sui/docker/nginx/conf.d 是本地 nginx 配置⽂件的存储⽬录,/etc/nginx/conf.d 是容器内 nginx 配置⽂件的存储⽬录。
–link sui-php:php 把 sui-php 的⽹络并⼊ sui-nginx,并通过修改 sui-nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,让nginx 通过 php:9000 访问 php-fpm。
测试结果:
在本地 /Users/sui/www 下放两个⽂件:index.html index.php
sh-3.2# cd /Users/sui/www/
sh-3.2# vim index.php
sh-3.2# vim index.html
sh-3.2# ls
index.html index.php
sh-3.2# curl localhost/index.php
123456
sh-3.2# curl localhost/index.html
654321
使⽤curl localhost/index.php测试PHP⽂件是否成功运⾏
使⽤curl localhost/index.html测试html⽂件否成功运⾏
5、启动mysql
sudo mkdir -p /Users/sui/docker/mysql/data /Users/sui/docker/mysql/logs /Users/sui/docker/mysql/conf
data ⽬录将映射为 mysql 容器配置的数据⽂件存放路径
logs ⽬录将映射为 mysql 容器的⽇志⽬录
conf ⽬录⾥的配置⽂件将映射为 mysql 容器的配置⽂件
docker run -p 3306:3306 --name sui-mysql -v /Users/sui/docker/mysql/conf:/etc/mysql -v /Users/sui/docker/mysql/logs:/logs -v /Users/sui/docker/mysql/data :/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d --link sui-php mysql/mysql-server
查看运⾏的容器
sh-3.2# docker ps
CONTAINER ID  IMAGE                  COMMAND                    PORTS                                                        NAMES
bada372f059e  mysql/mysql-server      "/entrypoint.sh mysq…"0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060-33061/tcp  sui-mysql
2a61b9fc9eba  nginx                  "/docker-entrypoint.…"0.0.0.0:80->80/tcp, :::80->80/tcp                            sui-nginx
b8e0cfa749cc  php:7.1-fpm            "docker-php-entrypoi…"9000/tcp                                                    sui-php
sh-3.2#
进⼊mysql容器内部测试mysql是否可⽤
sh-3.2# docker exec -it bada372f059e /bin/bash
bash-4.4# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1640
Server version: 8.0.26 MySQL Community Server - GPL
Copyright (c)2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h'for help. Type '\c' to clear the current input statement.
mysql>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。