Docker 中安装 Nginx
2019-12-01 本文已影响0人
虹猫日志
简述
Nginx是一种网络服务器,其也可以被用作反向代理,负载均衡器,邮件代理和HTTP缓存。该软件由Igor Sysoev创建,并于2004年首次公开发布。截至2019年8月,Netcraft估计Nginx服务了所有活跃网站的32%,排名仅次于Apache。
安装记录
- 老规矩先上官方指引,本教程外更加详细的说明尽在官方指引中。
# 从docker hub获取Nginx镜像
docker pull nginx
# 这里我通过后台方式启动Nginx,端口映射为80,并将本机目录和Nginx的静态资源目录进行映射。
docker run -d --name nginx -p 80:80 -v ~/usr/local/docker/nginx/html:/usr/share/nginx/html nginx
效果演示图如下:
测试图- 如遇到80端口被占用异常如下:
docker: Error response from daemon: driver failed programming external connectivity on endpoint nginx (031de8ec25b9fe00ea372d27fe8176041030fdfd04b7e491efe900dc2e2de246): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use
解释:可能是在端口80上运行了 apache,请使用 sudo apachectl stop
命令停掉 apache
到此Nginx就正常启动了,如果你熟悉Nginx的相关操作,只需执行
docker exec -it nginx bash
进入到Nginx容器中,即可对Nginx进行相关操作使用。
简单使用演示
- 通过ip+端口进行访问,会回显403,因为上述安装中,进行了静态资源文件夹映射,如果你本机映射目录为空,当然会没有内容显示。
- 进入本机映射文件夹,上传静态资源文件,注意必要内容为index.html
- 进行再次访问,正常显示 index.html 的内容
后记
- 容器中Nginx的主配置文件在
/etc/nginx nginx.conf
- Nginx默认的静态资源配置文件在
/etc/nginx/conf.d default.conf
- 静态资源存放路径,上图也有显示,在
/usr/share/nginx/html
下。
# 复制本机文件到指定容器指定目录(需要在本机执行命令,请保证已经退出容器)
docker cp 文件名/文件夹 容器名:指定目录
# 例:安装时没有进行静态资源文件夹映射,却需要将静态部署到Nginx
# 单个文件命令
docker cp index.html nginx:/usr/share/nginx/html/
# 整个文件夹(这里确保文件夹名和容器内部名相同,才能进行替换)
docker cp html nginx:/usr/share/nginx/
希望你看后学会举一反三,命令都是互通的,本教程仅进行简单演示说明。