文章插图
docker在centos7的安装方式建议看官网教程,不然docker安装nginx很可能出错 。
安装docker可以直接参照我简书上的安装过程
用docker安装Nginx的过程又学到了很多,例如复制docker容器内的文件到宿主机上等等使用nginx的很重要的一点是修改nginx.conf这个配置文件首先从dockerhub上拉取nginx最新的镜像docker pull nginx先简单的启动一个nginx容器,为了从容器中复制nginx.conf文件# docker启动nginx容器,命名为testdocker run –name test -d nginx查看nginx容器iddocker ps -a注意:docker启动nginx需要两个配置文件此处参考?迷彩诱惑的青春一个是位于容器内部的/etc/nginx/nginx.conf另一个是位于容器内部的/etc/nginx/conf.d/default.confdefault.conf配置的是server { }的内容所以在这里我们需要把这两个配置文件复制到宿主机用于挂载创建目录用于存放nginx.conf 和 default.conf# -p创建多级目录mkdir /usr/docker/nginx -pmkdir /usr/docker/nginx/conf.d/ -p从nginx容器中复制出nginx文件到刚才新建的目录# docker复制容器id为e9bf057b53bb的/etc/nginx/nginx.conf路径的nginx.conf文件到容器外宿主机的/docker/nginx/目录docker cp e9bf057b53bb:/etc/nginx/nginx.conf /usr/docker/nginx/# 复制default.conf,含义参考上条注释docker cp e9bf057b53bb:/etc/nginx/conf.d/default.conf /usr/docker/nginx/conf.d/复制出来之后删除刚才临时启动的test的容器#停止名为test的容器docker stop test#删除名为test的容器docker rm test重新启动一个完整的nginx容器docker run -d -p 80:80 –name nginx –net host -v /usr/docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /usr/docker/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf -v /usr/docker/nginx/html:/usr/share/nginx/html -v /usr/docker/vsftpd/root:/mnt/data -v /usr/docker/nginx/logs:/var/log/nginx –privileged=true –restart=always nginx下面的配置解释很重要****结合我default.conf的配置看解释:
-p 宿主机的80端口映射到容器的80端口
–name nginx 容器命名为nginx
–net host 容器和宿主机公用网络
-v 映射宿主机和容器内的路径,首先是把两个配置文件nginx.conf和default.conf从容器目录映射到宿主机的/usr/docker/nginx下的相应目录中,之后只要改宿主机的配置就相当于改了容器中的配置文件 。
其次看下面图片中的配置全是去找的容器相应位置的文件,没错,就是找容器相应位置,但是这些位置我也做了映射,例如把nginx的主页位置映射到了/usr/docker/nginx/html最重要的是把静态资源的位置映射到了宿主机的vsftpd静态资源服务器/usr/docker/vsftpd/root目录下,结合default.conf中的配置,就能通过nginx访问vsftpd下的静态图片文件了 。
-v 还做了日志文件目录的映射
–privileged=true 给容器内root权限
–restart=always 随docker自启动
启动nginx:latest镜像
开启防火墙相关端口#开启宿主机防火墙80端口firewall-cmd --zone=public --add-port=80/tcp --permanent#重启防火墙firewall-cmd --reload#查看防火墙已经启动的端口firewall-cmd --zone=public --list-ports这时候打开浏览器访问宿主机ip我这里是192.168.137.100就应该访问调到nginx欢迎页,这里会报错403因为/usr/docker/nginx/html路径下并没有index.html这个欢迎页额,但是准确的说nginx已经作为docker容器启动了# 简单的自己写一个欢迎页吧,最起码访问宿主机ip我这是192.168.137.100要看到效果啊 cd /usr/docker/nginx/html # 添加一个index.html文件写入hello nginx echo “hello nginx” > index.html # 容器中的nginx热更新 docker exec -it nginx nginx -s reload # 不管用就直接重启ngixn容器 docker restart nginx # 强迫症非要nginx首页如我的话,我直接拷贝windows中nginx的index页到/usr/docker/nginx/html中了到这nginx容器启动好了,下面启动vsftpd容器#拉取vsftpd镜像docker pull fauria/vsftpd#启动容器docker run -d -v /usr/docker/vsftpd:/home/vsftpd -p 20:20 -p 21:21 -p 21100-21110:21100-21110 -e FTP_USER=root -e FTP_PASS=123456 -e PASV_ADDRESS=192.168.137.100 -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 --name vsftpd --privileged=true --restart=always fauria/vsftpd#开启20防火墙端口firewall-cmd --zone=public --add-port=20/tcp --permanent#开启21防火墙端口firewall-cmd --zone=public --add-port=21/tcp --permanent#开启21100-21110防火墙端口firewall-cmd --zone=public --add-port=21100-21110/tcp --permanent#重启防火墙firewall-cmd --reload#查看防火墙已经启动的端口firewall-cmd --zone=public --list-portsdocker启动命令解释:
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- 姜子牙留在了人间 姜子牙在线观看免费完整电影2020
- 云服务器挖矿践行 云服务器挖矿
- vim下一页 日本免费网站2021年能用的6
- 免费的编程自学网站 python免费自学行吗
- 姜子牙到底有多牛 姜子牙在线观看免费完整电影2020
- 除恶务尽 除暴在线观看免费国语完整版
- 孩子生病住院 课老师漫画免费全集不遮
- 失独老人卖菜误撞豪车 霸道小叔请轻撩漫画免费下拉式
- 他给我一本存折 霸道小叔请轻撩漫画免费下拉式
- 姑娘每天为流浪汉送饭 萌师在上漫画免费阅读全集下拉式