前提:有一台华为云服务器。
华为云HECS云服务器,安装docker环境,查看如下文章。
下载最新版Nginx镜像 (其实此命令就等同于 : docker pull nginx:latest )
docker pull nginx
查看镜像
docker images

执行如下命令:
- mkdir -p /usr/local/nginx/conf
- mkdir -p /usr/local/nginx/log
- mkdir -p /usr/local/nginx/html
mkdir的-p参数,有文件夹则略过,没有则创建。

执行命令:
docker run -p 80:80 --name nginx -d nginx

1.1进入容器内部
docker exec -it nginx /bin/bash
1.2找到nginx.conf所在的地址(找到相关配置文件)
find / -name nginx.conf

这里以/etc/nginx/nginx.conf为例,其他类似
nginx.conf文件内容(示例):
-
- #使用XXXt用户访问
- user nginx;
- #user root;
- # worker进程的数量,设置为auto,将获取CPU的核心数
- worker_processes auto;
-
- error_log /var/log/nginx/error.log notice;
- # 配置主进程pid存放位置
- pid /var/run/nginx.pid;
-
-
- events {
- # 设置每个工作进程同时连接的最大数量
- worker_connections 1024;
- }
-
- # 提供配置文件上下文,设置http服务器
- http {
- # 设置包含的mime类型
- include /etc/nginx/mime.types;
- # 定义响应的默认mime类型
- default_type application/octet-stream;
-
- log_format main '$remote_addr - $remote_user [$time_local] "$request" '
- '$status $body_bytes_sent "$http_referer" '
- '"$http_user_agent" "$http_x_forwarded_for"';
-
- access_log /var/log/nginx/access.log main;
- # 高效文件传输模式
- sendfile on;
- #tcp_nopush on;
- # 长连接超时时间,在此期间客户端连接将保持打开状态,如果连接一直活跃,超时时间将自动刷新。如果设置为0,即禁用长连接
- keepalive_timeout 65;
-
- #gzip on;
-
- include /etc/nginx/conf.d/*.conf;
- # 虚拟服务器配置
- server {
- listen 80;
- server_name localhost;
- location / {
- root /usr/share/nginx/html;
- index index.html index.htm;
- }
-
- }
-
- }
1.3退出容器
exit
//将容器文件复制到宿主机
- docker cp nginx:/etc/nginx/nginx.conf /usr/local/nginx/conf
- docker cp nginx:/etc/nginx/conf.d/ /usr/local/nginx/conf
- docker cp nginx:/usr/share/nginx/html/ /usr/local/nginx
- docker cp nginx:/var/log/nginx /usr/local/nginx/log

docker stop nginx
docker rm nginx

命令如下:
- docker run -p 80:80 \
- --name nginx \
- -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
- -v /usr/local/nginx/conf/conf.d:/etc/nginx/conf.d \
- -v /usr/local/nginx/log:/var/log/nginx \
- -v /usr/local/nginx/html:/usr/share/nginx/html \
- --restart=always \
- --privileged=true \
- -d nginx
参数解析:
【-p 80:80】 将宿主机80端口与容器内80端口进行映射;
【–name】 给容器命名;
【-v】 将宿主机目录或文件与容器内目录或文件进行挂载映射;【 --restart=always】 开机启动,失败也会一直重启;
【--privileged=true】获取宿主机root权限。
【-d】表示后台启动;


有nginx标识,证明访问成功。
