、拉取nginx镜像
docker pull nginx:latest
在此过程中会遇到网络的问题,导致镜像无法下载,这时候需要在服务器中配置下国内的镜像地址。下面包含近期最新的国内镜像,截至2024年11月27日:
"https://<你的阿里云账号ID>.mirror.aliyuncs.com",
"https://docker.m.daocloud.io",
"https://docker.mirrors.ustc.edu.cn",
"https://<你的华为云账号>.mirror.swr.myhuaweicloud.com",
"https://docker.hpcloud.cloud",
"https://docker.m.daocloud.io",
"https://docker.unsee.tech",
"https://docker.1panel.live",
"http://mirrors.ustc.edu.cn",
"https://docker.chenby.cn",
"http://mirror.azure.cn",
"https://dockerpull.org",
"https://dockerhub.icu",
"https://hub.rat.dev"
然后在该目录下面创建进行镜像地址
sudo vim /etc/docker/daemon.json
配置项如下(可以多加几个,避免失效):
{"registry-mirrors": ["https://<你的阿里云账号ID>.mirror.aliyuncs.com","https://docker.m.daocloud.io","https://docker.mirrors.ustc.edu.cn"// 可以添加其他镜像源地址]
}
保存后根据下面命令docker重启
sudo systemctl daemon-reload
sudo systemctl restart docker
二、运行nginx容器
1、采用Dockerfile方式
docker run --name [容器名称] -d -p [端口号]:80 -p [端口号]:443 -v /path/to/nginx.conf:/etc/nginx/nginx.conf nginx
- –name [容器名称]:指定容器名称为[容器名称]。
- -d:后台运行容器。
- -p [端口号]:80:将宿主机的 [端口号] 端口映射到容器的80端口。
- /path/to/nginx.conf:/etc/nginx/nginx.conf 将 /path/to/nginx.conf 将宿主机映射到物理机里面
2、采用docker Compose进行配置
version: '3'services:nginx:image: nginx:latestports:- "80:80"- "443:443"volumes:- ./nginx/certs:/etc/nginx/certs- ./nginx/conf.d:/etc/nginx/conf.d- ./nginx/html:/usr/share/nginx/htmlrestart: always
volumes 记得一定要配置,这是与外界文件传递的重要参数,例如
- ./nginx/certs 目录应该包含你的 SSL 证书文件。
- ./nginx/conf.d 为额外的配置项
- ./nginx/html 存放资源文件
使用 Docker Compose,运行以下命令启动 Nginx 容器
docker-compose up -d
开启防火墙释放端口,如果是云服务器,记得释放安全端口
sudo firewall-cmd --zone=public --permanent --add-port=【PORT】/tcp
sudo firewall-cmd --reload
这样子就可以用ip访问具体的地址了
3、域名配置ssl
首先有一个域名并且得到了备案,然后你需要一个证书,我采用的腾讯云的证书,免费的,很香。
我们只需要下载nginx就可以了
,然后到nginx里面配置。
在这里发生一个问题,docker配置nginx里面用不了vim命令,所以需要你重新下载相关的vim工具
完成后,在对应的目录配置服务,具体代码如下
server {listen 443 ssl;server_name your_domain.com;ssl_certificate /etc/nginx/certs/domain.crt;ssl_certificate_key /etc/nginx/certs/domain.key;# 其他 SSL 相关配置...location / {# 你的 location 块配置...}
}
下面我们可以愉快的使用https,让网站更加的安全。