云原生-docker安装 Nginx

1、直接拉去最新的Nginx 镜像

docker pull nginx:latest

在这里插入图片描述

2、查看本地镜像

docker images

可以发现Nginx已经成功拉过来了
在这里插入图片描述

3、运行容器

docker run --name nginx -p 8069:80 -d nginx

在这里插入图片描述
打开ip:8069
ip是你服务器的地址,8069是你的端口
在这里插入图片描述

4、挂载配置

使用以下命令进入nginx容器

docker exec -it nginx /bin/bash

在这里插入图片描述
说明:docker挂载文件时,并不是挂载了某个文件的路径,而是挂载了对应的文件,即挂载了linux指定的inode文件.当使用vim之类的编辑器进行保存时,它不是直接保存文件,而是采用了备份、替换的策略,就是编辑时,是创建一个新的文件,在保存的时候,把备份文件替换源文件,这个时候文件的 inode 就发生了变化,而原来 inode 对应的文件其实并没有修改,也就是容器内的文件没有变化。当重启容器的时候,会挂载新的 inode
所以官方不建议直接挂载文件,而是建议直接挂载文件夹

从docker里的nginx将配置文件复制出来(若nginx没有启动需要先启动镜像)

docker cp nginx:/etc/nginx/nginx.conf /var/www/html/nginx/nginx.conf #从容器中复制配置文件
docker cp nginx:/etc/nginx/conf.d /var/www/html/nginx/ #从容器中复制配置文件夹
docker cp nginx:/usr/share/nginx/html /var/nginx/      #从容器中复制html文件
docker cp nginx:/var/log/nginx /var/nginx/log          #从容器中复制日志文件

docker stop nginx                                      #删除nginx容器
docker rm nginx										   #移除nginx容器
chmod 777 /var/www/html/nginx/conf                     #给nginx配置文件夹最大访问权限

重新以配置文件启动nginx镜像

docker run -d -p 8069:80 --name nginx --net host \
 -v /etc/nginx/nginx.conf:/var/www/html/nginx/nginx.conf \
 -v /etc/nginx/conf.d:/var/www/html/nginx/conf.d \
 -v /etc/nginx/cert:/var/www/html/nginx/cert \
 -v /var/nginx/html:/usr/share/nginx/html \
 -v /var/nginx/log:/var/log/nginx \
 -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 \
 --privileged=true --restart=always de2543b9436b

-e LANG=C.UTF-8 -e LC_ALL=C.UTF-8是解决nginx中文乱码
-d :守护式容器在后台运行
-p:端口映射,格式为 主机(宿主)端口:容器端口
-v:挂载目录
–privileged=true 给容器内root权限
–restart=always 随docker自启动
–net host容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口
de2543b9436b:自己镜像的id,记得修改

posted @ 2022-05-19 17:11  linhuang  阅读(3)  评论(0编辑  收藏  举报  来源