docker环境下安装nginx、挂载文件、docker容器中文乱码

文章目录

  • docker环境下安装nginx、挂载文件、docker容器中文乱码
    • 1、首先下载docker的nginx镜像
    • 2、查看下载完成的镜像
    • 3、运行一个nginx的镜像的实例
    • 4、交互形式进入创建的mynginx容器
    • 5、再次操作创建容器;操作如下:
    • 6、测试演示
      • 6.1、修改本地物理机挂载的html页面所在的位置,修改index.html页面内容
      • 6.2、交互进入nginx的容器中,查看容器默认编码
      • 6.3、最终的创建指令
    • 7、docker-compose.yml 脚本如下:

1、首先下载docker的nginx镜像

docker pull nginx

2、查看下载完成的镜像

docker images

3、运行一个nginx的镜像的实例

docker run --name mynginx -p 80:80 -d nginx:latest

调用http://localhost/index.html 可以看到nginx的主页,表示运行成功;

4、交互形式进入创建的mynginx容器

docker exec -it mynginx /bin/bash

在容器里,找到nginx的默认的配置文件,/etc/nginx/nginx.conf

可以看到,容器的nginx的配置文件,都是默认在容器里的/etc/nginx文件夹下,我们查看下nginx.conf内容,容器里,不支持vim操作;

cat nginx.conf

配置文件内容如下:

user  nginx;
worker_processes  1;error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;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;keepalive_timeout  65;#gzip  on;include /etc/nginx/conf.d/*.conf;
}

默认的异常日志文件写在/var/log/nginx/文件夹下,

最后一行,还导入了/etc/nginx/conf.d/*.conf配置文件。

查看/etc/nginx/conf.d/*.conf文件

可以看到,默认的静态代理资源路径是/usr/share/nginx/html

现在我已经知道了nginx的默认的配置文件,在什么位置,还有内容是什么,默认的root目录的位置,那么我们就可以把这些文件拷贝到物理机上的路径上,然后使用 -v命令,把路径挂载到物理机上的路径上。

5、再次操作创建容器;操作如下:

退出容器,回到物理机上,命令如下:

exit

在我的物理机下/Users/liqi/docker-compose/nginx,创建3个文件夹以及一个nginx.conf,分别存放html文件,配置文件,以及日志文件,如图所示:

拷贝容器中的对应的文件夹到物理机下对应的文件夹,大家可以对应自己的实际物理机目录,命令如下:

##导入的配置文件目录
docker cp mynginx:/etc/nginx/conf.d /Users/liqi/docker-compose/nginx
##默认的配置文件
docker cp mynginx:/etc/nginx/nginx.conf /Users/liqi/docker-compose/nginx/nginx.conf
##html页面所放的位置
docker cp mynginx:/usr/share/nginx/html /Users/liqi/docker-compose/nginx
##日志文件
docker cp mynginx:/var/log/nginx /Users/liqi/docker-compose/nginx/log

删除nginx镜像的mynginx容器

docker rm -f mynginx

重新执行run命令,挂载对应的文件到物理机

docker run --name mynginx -p 80:80 \
-v /Users/liqi/docker-compose/nginx/conf.d:/etc/nginx/conf.d \
-v /Users/liqi/docker-compose/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /Users/liqi/docker-compose/nginx/html:/usr/share/nginx/html \
-v /Users/liqi/docker-compose/nginx/log:/var/log/nginx \
-d nginx:latest

6、测试演示

http://localhost/index.html

打开url显示nginx的主页面

6.1、修改本地物理机挂载的html页面所在的位置,修改index.html页面内容

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
</head>
<body>
<h1>Welcome to nginx!</h1>
<h1>欢迎nginx主页</h1>
</body>
</html>

删除不要内容,只保留两行标签,一行中文,一行英文;再次刷新页面;发现文件目录挂载成功了,但是有中文乱码;

这是因为nginx使用的Linux是阉割版的,字符集跟文件字符集不匹配;

6.2、交互进入nginx的容器中,查看容器默认编码

docker exec -it mynginx /bin/bash

查看默认编码

locale

查看可以用的编码

locale -a

只要修改默认的编码格式,设置成UTF-8就可以了;不过容器里,没有vim指令,我们直接再创建容器的时候,指定一下环境变量,设置一个字符集;

6.3、最终的创建指令

docker run --name mynginx -p 80:80 \
-v /Users/liqi/docker-compose/nginx/conf.d:/etc/nginx/conf.d \
-v /Users/liqi/docker-compose/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /Users/liqi/docker-compose/nginx/html:/usr/share/nginx/html \
-v /Users/liqi/docker-compose/nginx/log:/var/log/nginx \
-e LANG=C.UTF-8 \
-e LC_ALL=C.UTF-8 \
-d nginx:latest

可以正常访问了;

7、docker-compose.yml 脚本如下:

version: '3'
services:nginx:image: nginx:latestcontainer_name: nginx_01volumes:- /Users/liqi/docker-compose/nginx/conf.d:/etc/nginx/conf.d- /Users/liqi/docker-compose/nginx/nginx.conf:/etc/nginx/nginx.conf- /Users/liqi/docker-compose/nginx/html:/usr/share/nginx/html- /Users/liqi/docker-compose/nginx/log:/var/log/nginxenvironment:- LANG=C.UTF-8- LC_ALL=C.UTF-8ports:- 80:80

docker环境下安装nginx、挂载文件、docker容器中文乱码相关推荐

  1. docker环境下安装rockermq以及rockermq-console

    docker环境下安装rockermq以及rockermq-console 文章目录 docker环境下安装rockermq以及rockermq-console 1.下载rocketmq的镜像 2.启 ...

  2. docker 启动命令_Jenkins视频课程在Docker环境下安装Jenkins,命令行如何启动Jenkins...

    Tomcat是Apache开发的一款servlet容器,可以提供java服务,作为服务器来使用.Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建.部署.自动化, 满 ...

  3. Linux环境下安装nginx

    大家好,本篇文章主要讲的是Linux环境下安装nginx教程,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览 1.安装所需环境 //安装gcc yum install gcc-c ...

  4. centos m4安装linux,Centos Docker环境下安装Dcm4che归档服务

    本文实现了搭建一个最小的基于Dcm4che+Docker的归档服务,能够实现影像DICOM的归档,调阅,转发功能,其搭建参考于GitHub 开源项目说明:dcm4che/dcm4chee-arc-li ...

  5. docker环境下安装upsource端口登陆不上的问题

    在正常安装好docker,pullupsource镜像后,运行upsource容器,然后根据提示local host:8080在浏览器登陆,发现连接不上,访问被拒绝. 开始以为是虚拟机防火墙的问题,可 ...

  6. 网小鱼Java的bug小集锦0031-Linux环境下安装nginx配置文件错误:端口无法正常映射问题解决

    在linux系统下,docker中pull下来nginx之后,因为前一天晚上执行了一下文件,启动nginx容器,运行nginx镜像,执行代码如下: sudo docker run -p 80:80 - ...

  7. linux环境下安装nginx步骤(不错)

    开始前,请确认gcc g++开发类库是否装好,默认已经安装. ububtu平台编译环境可以使用以下指令 apt-get install build-essential apt-get install ...

  8. linux裸机安装nginx,linux环境下安装nginx步骤 - 进击的乌龟 - 博客园

    开始前,请确认gcc g++开发类库是否装好,默认已经安装. ububtu平台编译环境可以使用以下指令 apt- get install build- essential apt - get inst ...

  9. linux环境下安装nginx步骤

    开始前,请确认gcc g++开发类库是否装好,默认已经安装. ububtu平台编译环境可以使用以下指令 apt-get install build-essential apt-get install ...

最新文章

  1. 编码中统一更该变量的快捷键_流媒体的7种方式使您成为更好的编码器
  2. 图像处理之基于NCC模板匹配识别
  3. CentOS启动不显示图形界面直接进入命令行模式
  4. MySQL 基本数据类型
  5. sql查询索引语句_sql优化总结--基于sql语句优化和索引优化
  6. oracle安装 衍生进程已退出,linux安装oracle 出现问题
  7. JavaScript鼠标经过图片加亮显示
  8. CocoaPods 基础知识--------安装 及 使用第三方库
  9. SVN和Maven及Jenkins(转)
  10. go get如何删除_Go语言HTTP请求(req库)
  11. linux mbr gpt 区别,MBR、GPT的结构和区别
  12. win7找不到服务器的dns错误怎么办,Win7系统DNS错误怎么办?
  13. 解决“win7系统,警告 -已计划将多个默认网关用于提供单一网络(例如 intranet或者Internet)的冗余”问题
  14. 数据库例题(创建数据库SPJ包含S、P、J和SPJ表)
  15. shell脚本俄罗斯方块
  16. 基于GEC6818开发板的相册
  17. js简单实现百度地图雷达探测效果
  18. UOJ#748-[UNR #6]机器人表演【dp】
  19. linux启动一个进程吗,当你在Linux上启动一个进程时会发生什么?
  20. S32K系列S32K144学习笔记——CAN

热门文章

  1. Win7Win10系统彻底卸载显卡驱动、重新安装新驱动的方法(可避免重启后自动恢复原先驱动)
  2. utime.ticks_diff()
  3. Java项目:销售团队后台管理系统(java+SpringBoot+FreeMarker+bootstrap+echarts+mysql)
  4. 一文整明白Researcher ID与ORCID
  5. Leave me alone ! 程序员怎样度过他的一天?
  6. nmn是个什么概念,NMN功能效果,一篇讲清楚
  7. oracle层级计算推演,(特价书)Oracle 高性能SQL引擎剖析:SQL优化与调优机制详解(资深Oracle专家黄玮十年磨一剑,盖国强作序力荐)(china-pub首发)...
  8. 计算机应用 外审后 责编 能录吗,论文外审结束后等待责编处理是什么意思
  9. 论文笔记:Protein-protein interaction site prediction through combining local and global features
  10. python二手车价格预测_天池_二手车交易价格预测数据分析