0
点赞
收藏
分享

微信扫一扫

docker 部署nginx的三种方法

准备工作:

1.从docker下载nginx

docker search nginx   查看各版本nginx

docker 部署nginx的三种方法_nginx

docker pull nginx       根据需要拉取镜像(一般使用最新版本就可以)

启动方法一 、docker 启动一个暴露外网端口nginx 实例

#官方nginx镜像暴露端口是80

dockerfile暴露的端口是80


#启动一个绑定外网端口是8080的nginx容器

docker run \

--name some-nginx \

-v /data/nginx/html:/usr/share/nginx/html:ro \

-p 8080:80 \

-d \

nginx

如果宿主机的ip是192.168.1.10,向nginx发起请求地址是http://192.168.1.10:8080



启动方法二 、docker 启动一个暴露外网端口和nginx配置文件路径的nginx 实例

假设宿主机的nginx配置文件存放目录/data/nginx/nginxconf,如果手头没有nginx配置文件,可以把容器的nginx配置文件复制到/data/nginx/nginxconf,不过先要启动一下没有绑配置的nginx容器,复制配置文件,删除这个nginx容器,最后就可以启动绑定nginx配置文件路径的nginx 实例。整个操作步骤如下:


第一步。启动一个不绑定nginx配置文件的容器

docker run \

--name some-nginx \

-v /data/nginx/html:/usr/share/nginx/html:ro \

-p 8080:80 \

-d \

nginx


第二步。复制some-nginx里nginx配置文件到宿主机的/data/nginxconf下

docker cp some-nginx:/etc/nginx /root/nginx/nginxconf

mv /root/nginx/nginxconf/nginx/* /root/nginx/nginxconf/

rm -rf /root/nginx/nginxconf/nginx


第三步。删除nginx容器

docker rm -f some-nginx


第四步。启动绑定nginx配置文件的nginx容器

docker run \

--name some-nginx \

-v /root/nginx/html:/usr/share/nginx/html:ro \

-v /root/nginx/nginxconf:/etc/nginx:ro \

-p 8080:80 \

-d \

nginx


-v /data/nginx/nginxconf:/etc/nginx:ro:/data/nginxconf宿主机上存储nginx的配置文件路径。/etc/nginx是容器里nginx配置文件路径。



启动方法三、docker-compose启动nginx服务

手动创建 /root/nginx/ 目录

手动创建 nginx的docker-compose.yml文件,存放在/root/nginx/下



version: '3' # docker-compose版本

services:

nginx:

image: nginx # 镜像名称

restart: always

container_name: some-nginx # 起别名

privileged: true

ports:

- 8080:8080 # 要启动的端口

volumes:

- ./nginx.conf:/etc/nginx/nginx.conf

- /etc/nginx/conf.d:/etc/nginx/conf.d

- /usr/share/nginx/html:/usr/share/nginx/html

- ./logs:/var/log/nginx

- /root/code:/root/code


/data/nginx/logs/:/var/log/nginx/ 加了一个日志映射到宿主机目录。好查看日志文件。


#docker-compose启动nginx


docker compose up -d


如果启动失败:

到/var/log/nginx/目录下查看nginx日志

/var/log/nginx/

docker 部署nginx的三种方法_docker_02

报错信息是 Permission denied可能是权限不够把nginx.conf 文件里的user nginx改成 user root后重启nginx就好了。

举报

相关推荐

0 条评论