Docker安装nginx
1、拉取nginx镜像并查看
# docker搜索nignx docker search nginx # 拉取nginx镜像--会从docker官方镜像中拉取 docker pull nginx # 查看docker镜像 docker images
2、运行镜像容器
docker run --name myNginx -p 80:80 -d nginx
参数含义:
-d 指定容器以守护进程方式在后台运行
–-name 指定启动容器名称,此处名字为:myNginx
-p 指定主机与容器内部的端口号映射关系,格式 -p [宿主机端口号]:[容器内部端口],此处为: 主机80端口,映射容器80端口
最后那个nginx是指要依赖镜像的名称
3、运行起来后可以进入镜像查看信息
# 进入容器内部 docker exec -it 容器id /bin/bash # 退出容器 exit
容器内部就是一个安装了nginx的简易版的linux系统,进入容器后可以发现内部的文件目录和linux的基本一致,包括nginx的配置文件,日志文件等信息。
4、设置nginx挂载
由于nginx运行是依赖一些配置的文件,比如转发的配置,默认页面,日志等信息,这些配置不适合直接放在容器里,因为容器一旦重新部署或者删除的话,这些配置将会丢失。
所以,我们需要将nginx的一些配置挂载到宿主机上(或者其他内网机器上也行,这里只示例挂载在宿主机)
我们要先将docker容器启动起来,然后将容器内部的文件复制到宿主机上(不要问为什么不直接在宿主机上新建文件,cv他不香吗?)
具体步骤:
4.1、运行容器(如果已运行则忽略此步骤)
docker run --name myNginx -p 80:80 -d nginx
4.2、在宿主机上创建挂载目录(/home/docker/volumes/nginx/log和/home/docker/volumes/nginx/conf)
# 绝对路径方式 mkdir -p /home/docker/volumes/nginx/{log,conf} # 相对路径方式(首先要cd到相应目录) mkdir -p ./docker/volumes/nginx/{log,conf}
4.3、将容器中的配置复制到挂载目录
# 从容器中复制配置文件 docker cp myNginx:/etc/nginx/nginx.conf /home/docker/volumes/nginx/conf/nginx.conf # 从容器中复制配置文件夹 docker cp myNginx:/etc/nginx/conf.d /home/docker/volumes/nginx/conf/ # 从容器中复制html文件 docker cp myNginx:/usr/share/nginx/html /home/docker/volumes/nginx/ # 从容器中复制日志文件 docker cp myNginx:/var/log/nginx /home/docker/volumes/nginx/log
其中myNginx是指启动的容器name,
4.4、停止并删除nginx容器(因为需要在docker run的时候设置挂载,所以之前启动的容器需要删除重新起一个)
docker stop myNginx docker rm myNginx
4.5、使用挂载方式启动nginx容器
chmod 777 /home/docker/volumes/nginx/conf/nginx.conf docker run -d -p 7777:80 --name myNginx \ -v /home/docker/volumes/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /home/docker/volumes/nginx/conf/conf.d:/etc/nginx/conf.d \ -v /home/docker/volumes/nginx/html:/usr/share/nginx/html \ -v /home/docker/volumes/nginx/log:/var/log/nginx \ -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 \ --privileged=true --restart=always nginx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了