docker中离线安装nginx
为什么要离线安装?
其实离线安装是建立在在线安装的基础上的;因为有可能我们的服务器由于安全问题无法访问外网,自此我们需要将镜像手动上传至服务器中。
所以现在的场景就是:我们手上有一台笔记本,可以上网;笔记本上可以远程连接到我们的服务器,而服务器无法连接外网。
离线安装
环境准备
需要在本地拉取所需镜像,但拉取镜像需要相关docker环境,故先安装Docker,本文默认已经在Linux环境上安装了Docker。
注:一般不会在Windows上安装Docker环境
拉取所需镜像至本地
# 搜索有哪些镜像可以下载 docker search 镜像名 # 拉取镜像到本地 docker pull 镜像名 # 查看当前本机有哪些镜像 docker images # 打包 docker save -o 要打镜像包名称 镜像 示例:docker save -o nginx.tar nginx # tar包的保存路径为当前路径
使用ftp将打包好的tar包上传到目标服务器中
加载镜像
当然服务器中的docker也需要手动安装,该安装过程请参考https://blog.csdn.net/qq_42511550/article/details/119188889
# 加载镜像;默认已经启动docker服务 docker load -i nginx.tar
查看镜像是否加载成功
docker image ls
创建docker-compose.yml文件
version: '3'
services:
nginx:
restart: always
container_name: nginx
image: nginx
ports:
- 80:80
- 443:443
volumes:
- /data/nginx/html:/usr/share/nginx/html
- /data/nginx/logs:/var/log/nginx
# 有可能会出现不能挂载,这个时候用手动拷贝配置文件就行
- /data/nginx/nginx.conf/:/etc/nginx/nginx.conf
- /data/nginx/etc/cert:/etc/nginx/cert
- /data/nginx/conf.d:/etc/nginx/conf.d
environment:
- NGINX_PORT=80
- TZ=Asia/Shanghai
privileged: true
根据yml文件中的数据卷volume创建相应文件夹(若不手动创建其实也会自动被创建)
mkdir /data/nginx/conf.d # 不要以为有后缀就是文件,此处的conf.d仍是一个文件夹
mkdir /data/nginx/log
8mkdir /data/nginx/www
进入/data/nginx/conf.d目录下创建一个default.conf文件
server{ listen 80; # 监听80端口 server_name localhost; # 请求的域名 location / { # 当请求进来后,映射上 / root /usr/share/nginx/html; # 将请求会映射到路径上. index index.html; # 默认请求会去寻找index.html作为欢迎页面. } }
启动nginx服务
docker-compose -f yml文件所在路径 up -d
进入nginx容器
docker exec -it nginx bash
查看nginx容器中端口开放情况
netstat -tlpn
测试端口映射连通性
telnet 宿主机IP 8080 # 端口映射为8080:80 表示宿主机的8080端口对应到nginx容器的80端口
web页面验证nginx服务
# 网页中输入
宿主机IP:8080
自此,nginx在docker中已经安装成功!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)