Docker安装Nginx

该文详细介绍了如何使用Docker下载Nginx官方镜像,创建挂载目录以保存配置和日志,以及如何从容器复制文件到宿主机。通过挂载目录,可以方便地管理和修改Nginx配置,同时展示了如何启动和运行容器,以及如何处理端口映射和容器跨主机访问的问题。
摘要由CSDN通过智能技术生成

Docker安装Nginx
1.下载镜像

https://hub.docker.com/_/nginx?tab=tags

 

这里选择官方镜像1.22.0版本

docker pull nginx:1.22.0

下载完成后检查镜像

2.创建挂载目录

用于存放默认页面、日志、配置文件,把这些文件挂载到宿主机上好处是:在需要频繁修改Nginx配置的场景中,不需要关注容器中的数据,直接删除重建容器就好。

如果已经提前把对应nginx版本需要挂载的文件打包好了,这里直接解压放在对应的路径即可,不需要执行下面从容器复制文件的步骤。

#解压目录

cd ~

tar -zxvf docker-nginx.tar.gz

没有这些文件的话,就创建目录,从容器中复制过来。

#创建目录
mkdir /home/用户/docker-nginx
3.从容器中复制要挂载的文件

先简单创建容器运行,从容器里面复制要挂载的文件到宿主机上。

# 创建并运行容器,容器命名为nginx
docker run --name nginx -p 80:80 -d nginx:1.22.0

#从容器nginx中复制nginx.conf文件到宿主机

docker cp nginx:/etc/nginx/nginx.conf /home/用户/docker-nginx/

docker cp nginx:/etc/nginx/conf.d/ /home/用户/docker-nginx/conf/

docker cp nginx:/usr/share/nginx/html/ /home/用户/docker-nginx/html/

docker cp nginx:/var/log/nginx/ /home/用户/docker-nginx/logs/

复制出的docker-nginx目录结构

打包目录

cd ~

tar -czvf docker-nginx.tar.gz docker-nginx/*

#停止、删除容器

docker stop nginx

docker rm nginx
4.创建并运行容器

    docker run -p 80:80 \
    -v /home/用户/docker-nginx/nginx.conf:/etc/nginx/nginx.conf \
    -v /home/用户/docker-nginx/logs:/var/log/nginx \
    -v /home/用户/docker-nginx/html:/usr/share/nginx/html \
    -v /home/用户/docker-nginx/conf:/etc/nginx/conf.d \
    -v /etc/localtime:/etc/localtime \
    --name nginx \
    --restart=always \
    -d nginx:1.22.0

    参数说明:
    -p 映射端口,格式为“宿主机端口:容器端口”
    -v 挂载文件

    -e TZ=Asia/Shanghai  设置时区

    --privileged=true 让容器中的root用户拥有真正的root权限

    --name  容器名字,以后可以使用这个名字启动或者停止容器

    --restart=always docker启动时自动启动容器
    -d 指定要启动的镜像名

如下图,执行后返回容器id没有报Error,查看容器列表,nginx容器状态正常,则安装成功。

浏览器访问http://ip:80,可以看到nginx页面

 

如果安装失败,查看容器列表是否已有nginx容器,有的话需要删除容器后再重新创建。
修改Nginx配置

在宿主机上修改html目录下的文件是即时生效的。

在宿主机上修改nginx.conf和conf目录下的配置文件后,需要重启容器重新加载配置。

    注意:修改配置文件时,文件中的路径要使用容器中的路径。

新增/删除映射端口

最简单的方法就是停止、删除当前的容器,修改docker run命令中参数-p对应的端口映射值后再重新创建容器。
容器跨主机访问

Nginx用于负载均衡时,需要访问宿主机以外的其它主机,最简单的做法是使用host模式创建容器,这时候容器将会共用使用宿主机的IP和端口。这种方式性能高,但无法自定义容器的网络配置和管理。

    #改造之前的docker run,添加--net=host,去掉-p。
    docker run \
    -v /home/用户/docker-nginx/nginx.conf:/etc/nginx/nginx.conf \
    -v /home/用户/docker-nginx/logs:/var/log/nginx \
    -v /home/用户/docker-nginx/html:/usr/share/nginx/html \
    -v /home/用户/docker-nginx/conf:/etc/nginx/conf.d \
    -v /etc/localtime:/etc/localtime \
    --net=host \
    --name nginx \
    --restart=always \
    -d nginx:1.22.0

要在Docker安装Nginx,可以按照以下步骤进行操作: 1. 首先,查看可用的Nginx版本。可以访问Nginx镜像库地址https://hub.docker.com/_/nginx?tab=tags来获取可用的版本信息。 2. 下载Nginx镜像。可以使用命令`docker pull nginx`来下载最新版的Nginx镜像。也可以使用`docker pull nginx:xxx`来下载指定版本的Nginx镜像,其中`xxx`是具体的版本号。 3. 创建Nginx容器。可以使用以下命令来创建Nginx容器: ``` docker run \ -p 9002:80 \ --name nginx \ -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /home/nginx/conf/conf.d:/etc/nginx/conf.d \ -v /home/nginx/log:/var/log/nginx \ -v /home/nginx/html:/usr/share/nginx/html \ -d nginx:latest ``` 这个命令会启动一个名为`nginx`的容器,将容器的9002端口映射到主机的80端口,同时挂载了配置文件、日志文件和内容文件的目录。 这样,你就成功安装Docker中的Nginx。你可以通过访问`http://localhost:9002`来验证Nginx是否正常运行。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Docker 安装 Nginx](https://download.csdn.net/download/weixin_38698863/14893474)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Docker 安装 Nginx 容器 (完整详细版)](https://blog.csdn.net/BThinker/article/details/123507820)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值