Docker--安装服务--Nginx

网友投稿 229 2022-10-22

Docker--安装服务--Nginx

简介

本文展示:使用Docker部署Nginx并成功访问.html静态文件。

实例(Docker外部配置Nginx)

1.获取Nginx镜像

搜索镜像

docker search nginx

可以发现有很多镜像。第一个镜像是官方的:nginx:latest

拉取镜像

docker pull nginx:latest

查看镜像

docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEnginx latest 62d49f9bab67 2 weeks ago 133MB

2.拷贝配置到外部

创建外部配置目录(放到:/home/docker-config/nginx下边) mkdir -p /home/docker-config/nginx/ mkdir -p /home/docker-config/nginx/conf.d mkdir -p /home/docker-config/nginx/logs mkdir -p /home/docker-config/nginx/share创建并启动nginx容器(以生成默认的配置文件) 创建nginx容器 docker run --name nginx_latest -P -d nginx:latest查看容器的id docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES793431c0c200 nginx:latest "/docker-entrypoint.…" 24 hours ago Up 29 minutes xxx nginx_latest将内部配置文件拷贝到外部 docker cp 7934:/etc/nginx/nginx.conf /root/docker-config/nginx/nginx.conf docker cp 7934:/etc/nginx/conf.d/ /root/docker-config/nginx/conf.d/ docker cp 7934:/var/log/nginx/ /root/docker-config/nginx/logs/ docker cp 7934:/usr/share/nginx/html/ /root/docker-config/nginx/share/html //注意:使用CONTAINER ID的前几位就可以。此处应该也可以用NAMES。

3.修改配置文件

​简介​

假设:我们想通过10000端口来访问index.html

​原来的配置文件​(nginx.conf)

user nginx;worker_processes 1; error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid; events { worker_connections 1024;} { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$' '"$"$ access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf;}

​修改之后​(nginx.conf)

user nginx;worker_processes 1;error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid;events { worker_connections 1024;}{ include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$' '"$"$ access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; server{ listen 10000; server_name _; root /usr/share/nginx/html/; index index.html; }}

​注意​

所有的配置路径都是docker内部的路径,不要写:/home/docker-config/xxx这种。我们后边会通过路径映射的方式启动,docker会自动从外部路径获得数据。

4.关闭并删除原先的nginx容器

关闭:docker stop nginx_latest

删除:docker rm nginx_latest

5.以外部配置启动容器

​命令​

sudo docker run --name nginx_latest -d -p 10000:10000 \

-v /home/docker-config/nginx/nginx.conf:/etc/nginx/nginx.conf \

-v /home/docker-config/nginx/conf.d:/etc/nginx/conf.d \

-v /home/docker-config/nginx/logs:/var/log/nginx \

-v /home/docker-config/nginx/share/html:/usr/share/nginx/html \

nginx:latest

​说明​

这样通过创建映射的方式启动,当我们用docker exec -it xxx /bin/bash 进去查看配置时可以发现,它所有配置跟外部配置是一样的。

这里,我猜测,有以下两种可能。

docker先把外部配置拷贝到内部容器,然后启动docker在我们访问内部配置的时候,实际访问的还是外部的配置,它相当于一个快捷方式一样的一个链接。

6.测试

访问:ip:10000

实例(Docker内部配置Nginx)

1.获取Nginx镜像

跟上边一样。

2.创建并启动容器

创建nginx容器

docker run --name nginx_latest -p 10000:10000 -d nginx:latest

关闭:docker stop nginx_latest

3.修改配置文件

​简介​

假设:我们想通过10000端口来访问index.html

​原来的配置文件​(nginx.conf)

user nginx;worker_processes 1; error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid; events { worker_connections 1024;} { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$' '"$"$ access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf;}

​修改之后​(nginx.conf)

user nginx;worker_processes 1;error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid;events { worker_connections 1024;}{ include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$' '"$"$ access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; server{ listen 10000; server_name _; root /usr/share/nginx/html/; index index.html; }}

4.再次启动

docker start nginx_latest

其他网址

​​Docker系列三~docker安装nginx_笔记docker安装nginx​​

​​使用docker安装nginx​​

​​使用docker安装nginx_花&败_docker安装nginx​​

​​docker nginx安装模块_Docker 安装 Nginx_ohbibendum的博客-

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java源码难点突破Lambda表达式执行原理
下一篇:关于base64转图片的信息
相关文章

 发表评论

暂时没有评论,来抢沙发吧~