docker部署nginx

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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文件

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值