首先,系统(3.8以上内核的linux)中安装好 Docker 这个运用程序。由于网络原因,我们下载一个Docker官方的镜像需要很长的时间,甚至下载失败。为此,阿里云容器镜像服务提供了官方的镜像站点,从而加速官方镜像的下载速度。 [ 不会的可以参考我之前的文章:Docker <一> 架构简介与Linux上安装 https://my.oschina.net/u/3375733/blog/1582281]。
一、Docker pull 安装 Nginx
1、查看docker仓库中的 nginx 命令
# 使用 docker search 命令搜索存放在 Docker Hub 中的镜像
docker search nginx
以看到下图所示的信息:
2、为选定需要pull到系统中的官方 Nginx 镜像
# docker pull nginx -------- nginx 为选定需要pull到系统中的官方 nginx 镜像
docker pull nginx
整个pull过程需要花费一些时间,耐心等待。
若见下图证明pull成功。
二、查看并启动Docker 镜像
1、列出已下载的镜像
# 使用 docker images 命令即可列出已下载的镜像
docker images
执行命令后,可看到类似于如下的表格:
2、列出运行中的容器
# 使用 docker ps 命令即可列出运行中的容器
docker ps
# 使用 docker ps -a 命令即可列出所有(包括已停止的)的容器
docker ps -a
执行命令后,可看到类似于如下的表格:
可以发现,目前没有运行的 nginx 容器。故,接下来我们新建并启动一个 nginx 容器。
三、启动容器,部署nginx并修改配置文件
1、启动跑个静态网页,测试下 nginx 容器
# 启动一个名为nginx81(名字自己根据需求起名字,一般见名知意即可) 的容器
docker run --name nginx81 -d -p 80:80 -v /usr/docker/nginx/html:/usr/share/nginx/html nginx
# 默认容器对这个目录有可读写权限,可以通过指定ro,将权限改为只读(readonly)
# docker run --name my-nginx -d -p 80:80 -v /usr/docker/nginx/html:/usr/share/nginx/html:ro -d nginx
访问 http://Docker宿主机IP:指定的Docker宿主机端口 ,可以访问说明
2、部署nginx 项目并修改配置文件
一般情况下docker启动时进行配置,只要把配置文件的目录挂载出来就可以,但是nginx却是先加载一个主配置文件nginx.conf,在nginx.conf里再加载conf.d目录下的子配置文件(一般最少一个default.conf文件)。
# 普通的挂载方式
docker run --name mynginx2 --mount source=/var/www,target==/usr/share/nginx/html,readonly \
--mount source=/var/nginx/conf,target=/etc/nginx/conf,readonly -p 80:80 -d nginx
docker 启动 nginx 加载自定义配置:
# 1. 第一个“-v”,是项目位置,把项目放到挂载到的目录下即可
# 2. 第二个“-v”,是挂载的主配置文件"nginx.conf",注意"nginx.conf"文件内有一行
# "include /etc/nginx/conf.d/*.conf;" ,
# 这个include指向了子配置文件的路径,此处注意include后所跟的路径一定不能出错
# 3. 第三个“-v”,把docker内子配置文件的路径也挂载了出来,注意要与 “2.” 中include指向路径一致
# 4. nginx.conf是挂载了一个文件(docker是不推荐这样用的),conf.d挂载的是一个目录
docker run \
--name nginx81 \
-d -p 81:80 \
-v /usr/docker/nginx81/html:/usr/share/nginx/html \
-v /etc/docker/nginx81/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /etc/docker/nginx81/conf.d:/etc/nginx/conf.d \
nginx
准备挂载的 nginx.conf :
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
准备挂载的 default.conf :
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location /api{
proxy_pass http://192.168.1.1:9999/api;
# access_log "logs/test.log";
}
}
上述的依然不够灵活,可以直接进入容器操作:
1) 启动
# 启动一个名 nginx81 的 nginx 容器
docker run --name nginx81 -d -p 81:80 -v \
/usr/docker/nginx81/html/:/usr/share/nginx/html:ro -d nginx
# 添加日志记录启动
docker run --name nginx81 -d -p 81:80 -v /usr/docker/nginx81/html/:/usr/share/nginx/html:ro \
-v /logs:/var/log/nginx -d nginx
2)拷贝容器内的配置文件到本地,进行个性化配置等操作
docker cp nginx:/etc/nginx/nginx.conf /usr/docker/nginx81/nginx.conf
3)重新指定配置文件启动
docker run --name nginx81 -d -p 81:80 -v /usr/docker/nginx81/html:/usr/share/nginx/html:ro
-v $PWD/logs:/var/log/nginx -v /usr/docker/nginx81/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx
4)进入容器
sudo docker exec -it d3a86da6fad1 /bin/bash
# 退出容器:Ctrl+P+Q
四、通过 Dockerfile 构建 Nginx
相关链接
· docker 官网 Nginx 安装文档: https://docs.docker.com/samples/library/nginx/#hosting-some-simple-static-content
· Nginx 官网文档:https://www.nginx.com/blog/deploying-nginx-nginx-plus-docker/
相关推荐
首先,当我们运行Docker容器时,通常会用`-v`参数来挂载宿主机的目录到容器内,以便于我们能直接在宿主机上编辑配置文件或查看日志,如`/Docker/nginx/conf/nginx.conf`挂载到`/etc/nginx/nginx.conf`,`/Docker/...
使用Docker技术安装Nginx及配置简单的负载均衡。 将nginx的配置文件从容器中拷贝到宿主目录 $ mkdir -p /colorfulfrog/nginx/config --先在宿主机创建config目录 $ mkdir -p /colorfulfrog/nginx/html --先在宿主机...
在本文中,我们将详细介绍如何使用 Docker 安装 WordPress,并通过 Nginx 反向代理,绑定域名,配置 HTTPS。 首先,我们需要安装 Docker,若您已经安装了 Docker,可以跳过这一步骤。如果您还没有安装 Docker,可以...
在本文中,我们将详细介绍如何使用 Docker 安装 nginx 服务器,并修改其配置文件。同时,我们还将介绍 Docker 的一些基本概念和命令。 Docker 概念 Docker 是一个容器化平台,允许开发者在容器中运行应用程序,而...
本文将详细介绍如何在Docker环境下配置Nginx以实现这一功能,主要涉及`docker-compose.yml`、`nginx.conf`以及`mime.types`文件的配置。 首先,我们来看`docker-compose.yml`文件。这个文件用于定义和配置Docker...
本文档详细记录了使用 Docker 安装 Nginx 1.15.9 的过程,包括镜像的上传、容器的创建和配置文件的设置。下面是对标题、描述、标签和部分内容的解释和知识点总结: 标题和描述 Docker 是一个流行的容器化平台,可以...
用法: 服务器 拉取 docker 镜像并运行: ...要启用 SSL,请参阅nginx.conf并取消注释以下行: listen 443 ssl; ssl_certificate /opt/certs/example.com.crt; ssl_certificate_key /opt/certs/example.com.key;
2. **Nginx配置**:在上述`volumes`部分,我们指定了将本地的`nginx.conf`文件挂载到容器内的`/etc/nginx/nginx.conf`。这个配置文件决定了Nginx如何处理请求。你可以根据需求定制这个文件,例如设置虚拟主机、反向...
编写nginx,conf配置文件,并放在文件夹中 # For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: ...
这包括下载源码,创建MySQL用户组和用户,配置编译选项,编译和安装,设置my.cnf配置文件,并初始化数据库。 8. 配置MySQL:创建数据库和用户,根据应用程序的需要设置权限。 9. 安装应用程序:例如,如果你要安装...
我们需要在NFS服务器上配置共享目录,并在Docker Stack配置文件中声明此远程卷挂载,这样Nginx和PHP容器就可以访问存储在NFS上的网站文件。 部署流程通常包括以下步骤: 1. **需求分析**:明确服务需求,如性能、...
6. **Docker化部署**:如果使用Docker部署Nginx,可以通过Docker容器的卷挂载功能,实时同步主机上的配置文件到容器内,容器会自动应用变更。 为了保证动态配置的安全性,需要注意以下几点: - 配置更新应有权限...
总结,解决Docker中的Nginx无法访问问题,关键在于检查和修正Nginx配置文件,确保至少有一个有效的server block处理请求,并正确地映射端口和挂载配置文件。同时,利用Docker的调试工具如`docker exec`可以帮助定位...
4.docker容器内目录/usr/local/nginx/{conf,logs,html},根据需要挂载 构建过程参考博客:...
本手册将详细讲解在Linux CentOS系统上安装与配置Java JDK、MySQL数据库、GitLab代码管理工具、Docker容器化平台以及Nginx-Lua模块的过程。 1. **Java JDK安装**: - JDK(Java Development Kit)是Java编程语言的...
文章目录1、拉取官方镜像2、创建宿主机...conf.d: nginx配置,代理、转发、负载、集群、。。。 conf:nginx配置,一般配置缓存、限流在这个里面 。。。 conf 文件夹下面: conf /nginx.conf: user nginx; worker_pro
这个压缩包包含了编译 Nginx 服务器所需的所有源代码文件、配置文件模板(如 nginx.conf)、模块源码以及构建和安装说明。通过解压这个压缩包,您可以在支持 C 语言编译器的操作系统上编译并安装 Nginx 1.24.0。 ...
日志开关在Nginx配置文件(/etc/nginx/nginx.conf)中设置,两种日志都可以选择性关闭,默认都是打开的。 访问日志主要记录客户端访问Nginx的每一个请求,格式可以自定义。通过访问日志,你可以得到用户地域来源、...