拉取镜像(这个不多说了)
MacbookdeMacBook-Pro:~ macbookpro$ docker pull nginx
MacbookdeMacBook-Pro:~ macbookpro$ docker pull php
首先创建php容器
MacbookdeMacBook-Pro:~ macbookpro$ docker run --name change-php -v /Users/macbookpro/Desktop/test_docker/html:/var/www/html -p 9000:9000 -d php:7.1-fpm
13c7c2dc2927054027c1f834cf4f9c2dfbb6781cf796a65c86560c86f7551bf5
##各项参数说明
1.--name 为容器命名为change-php
2.-v 挂载文件,这里是把当前宿主机的目录 挂载到容器的项目目录上
3.-p 端口 9000:9000 代表把宿主机的端口映射到容器的9000端口
4.-d后台守护进程
php后面的冒号:版本号
## 查看运行情况
MacbookdeMacBook-Pro:~ macbookpro$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
13c7c2dc2927 php:7.1-fpm "docker-php-entrypoi…" 3 seconds ago Up 2 seconds 0.0.0.0:9000->9000/tcp change-php
当STATUS 为Up的时候才算启动成功
创建nginx容器
MacbookdeMacBook-Pro:~ macbookpro$ docker run -d --name change-nginx -p 666:80 -v /Users/macbookpro/Desktop/test_docker/html:/var/www/html -v /Users/macbookpro/Desktop/test_docker/conf.d:/etc/nginx/conf.d --link change-php:change-php nginx
23a73e0d25d796bae925f19a5dc7de346e09e75f368386e218a61ed3b8e0f188
##各项参数说明
1.--name 为容器命名为change-nginx
2.-v 挂载文件,这里是把当前宿主机的目录 挂载到容器的项目目录上
3.-p 端口 666:80 代表把宿主机的666端口映射到容器的80端口
4.--link 代表把nginx容器和php-fpm容器 相关联 一般是 (--link php容器名:新命名)
5.-d后台守护进程
MacbookdeMacBook-Pro:~ macbookpro$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
23a73e0d25d7 nginx "nginx -g 'daemon of…" 9 seconds ago Up 7 seconds 0.0.0.0:666->80/tcp change-nginx
当STATUS 为Up的时候才算启动成功
重点说一下nginx的配置文件
1.需要把我们自定义的配置文件挂载到容器的配置文件上
2.基本需要改的是root目录和fastcgi_pass的地址
3.root目录:这个是自定义,没什么毛病
4.fastcgi_pass地址:这个是重点,
fastcgi_pass change-php:9000;
一般由 php-fpm容器名:9000,这样组成
5.这个conf文件可以在宿主机上面创建好,然后拷贝到容器中的配置文件中,进行覆盖,下一点就说道如何进入容器和如何拷贝文件到容器中
下面是例子
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /var/www/html;
index index.html index.htm index.php;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
#proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /var/www/html;
fastcgi_pass change-php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
进入nginx容器
进入容器很简单,命令如下
docker exec -it 容器名 /bin/bash
只需要查出容器的id,如何查出容器id?以下第一列就是容器的id
MacbookdeMacBook-Pro:~ macbookpro$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
23a73e0d25d7 nginx "nginx -g 'daemon of…" 9 seconds ago Up 7 seconds 0.0.0.0:666->80/tcp change-nginx
进入之后 如下。
MacbookdeMacBook-Pro:~ macbookpro$ docker exec -it 23a73e0d25d7 /bin/bash
root@23a73e0d25d7:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
拷贝文件到容器
也很简单
从主机复制到容器:docker cp 宿主机文件地址 容器id:容器文件地址
从容器复制到主机:docker cp 容器id:容器文件地址 宿主机文件地址
##进入nginx容器可以查出配置文件,只需要覆盖这个default.conf
root@23a73e0d25d7:/etc/nginx/conf.d# ls
default.conf
MacbookdeMacBook-Pro:~ macbookpro$ docker cp /Users/macbookpro/Desktop/test_docker/conf.d/default.conf 7701a00b6db4:/etc/nginx/conf.d/default.conf
重启nginx
docker exec进入容器之后,直接 service nginx reload就可以,不要重启容器
运行php文件
浏览器输入localhost:666/index.php
更多推荐
docker搭建nginx和php-fpm环境(官方镜像)
发布评论