docker部署nginx

本文详细介绍了如何在Linux环境下使用Docker下载并运行Nginx镜像,创建容器,设置端口映射,以及如何进行容器内的目录映射。在遇到403错误时,还提示需要在宿主机的html目录下放置index.html文件。

1、下载及查看镜像

[root@localhost ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
a2abf6c4d29d: Pull complete 
a9edb18cadd1: Pull complete 
589b7251471a: Pull complete 
186b1aaa4aa6: Pull complete 
b4df32aa5a72: Pull complete 
a0bcbecc962e: Pull complete 
Digest:[root@localhost ~]# docker run --name nginxtest -p 80:80 -d nginx
2f18abf38e84674d0b75a7c1f7f18500682f334b98aef524cb99472101c41f01
sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
[root@localhost ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
nginx         latest    605c77e624dd   2 months ago   141MB
hello-world   latest    feb5d9fea6a5   5 months ago   13.3kB

 2、测试镜像

[root@localhost ~]# docker run --name nginxtest -p 80:80 -d nginx
2f18abf38e84674d0b75a7c1f7f18500682f334b98aef524cb99472101c41f01
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                               NAMES
2f18abf38e84   nginx     "/docker-entrypoint.…"   2 minutes ago   Up 2 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   nginxtest

 参数说明:

  • --name nginxtest:容器别名,默认为随机的。
  • -p 80:80: publish发布端口,开户DNAT映射,将宿主机 80 端口映射到容器 80 端口。
  • -d nginx: 后台启动容器。

 3、容器部署

3.1 创建三个目录,html目录,日志目录及配置目录

[root@localhost data]# cd /usr/local/
[root@localhost local]# mkdir -p ./nginx/html
[root@localhost local]# mkdir -p ./nginx/logs
[root@localhost local]# mkdir -p ./nginx/conf

3.2 拷贝配置文件

拷贝容器内nginx默认配置文件到本地目录下的conf目录,通过docker ps命令查看容器ID

[root@localhost local]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED       STATUS       PORTS                               NAMES
2f18abf38e84   nginx     "/docker-entrypoint.…"   5 minutes ago   Up 5 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   nginxtest
[root@localhost local]# docker cp 2f18abf38e84:/etc/nginx/nginx.conf /usr/local/nginx/conf/
[root@localhost conf.d]# docker cp 2f18abf38e84:/etc/nginx/conf.d/default.conf /usr/local/nginx/conf.d/

3.3 映射容器目录

先停掉之前启动的docker容器,并且删除后重新创建

[root@localhost local]# docker stop 2f18abf38e84
2f18abf38e84
[root@localhost local]# docker rm 2f18abf38e84
2f18abf38e84

[root@localhost local]# docker run --name nginx -d -p 80:80 -v /usr/local/nginx/log:/var/log/nginx -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/conf.d:/etc/nginx/conf.d -v /usr/local/nginx/html:/usr/share/nginx/html nginx
052be59bd50a30eae46b96e83efc6271bbb908439bd91e54092daf4642debfb7
[root@localhost local]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                               NAMES
052be59bd50a   nginx     "/docker-entrypoint.…"   4 seconds ago   Up 3 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp   nginx
[root@localhost local]#

 页面出现403的时候,在宿机的html文件夹下需要放入index.html文件

 

### 使用Docker部署Nginx #### 下载官方镜像 为了开始使用Docker部署Nginx,首先需要拉取官方的Nginx镜像。这可以通过执行`docker pull nginx`来完成,默认情况下此命令会下载最新的稳定版本[^3]。 ```bash docker pull nginx ``` #### 启动容器并运行Nginx服务 获取到所需的镜像之后,下一步就是启动一个新的容器实例,并让其内部运行Nginx服务器。可以利用下面这条指令实现: ```bash docker run --name my-nginx -d -p 80:80 nginx ``` 上述命令创建了一个名为`my-nginx`的新容器,在后台模式下(-d参数)持续运行;同时通过-p选项指定了端口映射关系(主机上的80端口对应于容器内的80端口),使得外部能够访问到由该容器提供的Web页面[^1]。 #### 配置文件与静态资源挂载 如果想要自定义配置或是提供特定的内容,则需将本地路径下的配置文件或HTML文档等作为卷(volume)附加给正在运行中的容器。例如: ```bash docker run --name custom-nginx -v /path/to/conf:/etc/nginx/conf.d -v /path/to/html:/usr/share/nginx/html -d -p 80:80 nginx ``` 这里假设`/path/to/conf`目录包含了用户定制化的`.conf`文件,而`/path/to/html`则是放置网页素材的地方[^2]。 #### 平滑重启Nginx进程 当修改了配置文件后,可能希望不中断现有连接的前提下更新设置。对于这种情况,应该采用如下方式发送信号给Nginx使其重新加载配置而不终止任何活动请求: ```bash docker exec -it [容器ID或名称] nginx -s reload ``` 其中`[容器ID或名称]`应替换为实际的目标容器标识符。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值