关于Docker安装Nginx和docker安装nginx并挂载目录的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于167dockerdocker构建nginx容器系列问题dockerre
关于Docker 安装 Nginx和docker安装nginx并挂载目录的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于167 docker docker构建nginx容器系列问题 docker registry docker run docker toolbo、Centos7安装nginx(二)之docker中安装nginx、docker - nginx 安装、Docker Alpine Dockerfile 安装nginx,最小镜像等相关知识的信息别忘了在本站进行查找喔。
本文目录一览:- Docker 安装 Nginx(docker安装nginx并挂载目录)
- 167 docker docker构建nginx容器系列问题 docker registry docker run docker toolbo
- Centos7安装nginx(二)之docker中安装nginx
- docker - nginx 安装
- Docker Alpine Dockerfile 安装nginx,最小镜像
Docker 安装 Nginx(docker安装nginx并挂载目录)
一。拉取 Nginx 镜像
docker pull nginx
二。先安装一个 Nginx 以便拷贝 nginx 配置文件
docker run --name nginxTest -d nginx
三。从已安装容器中拷贝配置文件
docker cp nginxTest:/etc/nginx/nginx.conf /root/nginx/nginx.conf
1. cp // 拷贝命令
2. nginxTest:/etc/nginx/nginx.conf // 容器 nginxTest nginx 配置文件地址
3. /root/nginx/nginx.conf // 宿主机用于挂载容器 Nginx 配置的地址
四。删除之前安装的临时镜像
docker stop nginxTest //先停止容器
docker rm nginxTest //再删除容器
五。切换目录到 nginx 地址
cd ~/nginx //若无nginx 文件夹新建
六。安装正式容器
docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs -d nginx
1. -p 80:80 //把本机80端口 映射到 docker容器
2. --name mynginx //名称为mynginx
3. -v $PWD/www:/www //把当前目录下的www 文件夹 挂载到 docker的 www 目录
4. -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf //把当前目录下的conf/nginx.conf 挂载到 docker容器的/etc/nginx/nginx.conf文件上
5. -d nginx 以守护进程方式加载镜像 nginx
总结之所以要先安装并把nginx配置文件临时容器拷贝到宿主机,是因为宿主机如果nginx配置文件与容器nginx不一致无法挂载
回报异常:Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.
167 docker docker构建nginx容器系列问题 docker registry docker run docker toolbo
background : 最近为小伙伴们筹划docker系列的技术分享,研究了一会docker相关技术, 在此记录一下构建nginx容器时候的坑
1.nginx服务器根目录问题
docker 官方镜像提供的nginx基于debian/jessie平台,其文件结构和ubuntu中的nginx中并不相同
eg:
run一个niginx容器
<span>//80端口被占用,so...</span> $ sudo docker run <span>-it</span><span>-p</span><span>800</span>:<span>800</span> nginx $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES <span>1801</span>a32aab54 nginx <span>"nginx -g ''daemon off"</span><span>2</span> minutes ago Up <span>2</span> minutes <span>80</span>/tcp, <span>443</span>/tcp, <span>0.0</span><span>.0</span><span>.0</span>:<span>800</span><span>-></span><span>800</span>/tcp berserk_kare
进入容器内部
<span>$ </span>sudo docker exec -it <span>1801</span>a32aab54 /bin/bash root<span>@1801a32aab54</span><span>:/</span><span># </span>
查看nginx目录
<span># cd /etc/nginx/</span> conf<span>.d</span>/ koi-utf mime<span>.types</span> nginx<span>.conf</span> uwsgi_params fastcgi_params koi-win modules/ scgi_params win-utf
可以看到不仅没有熟悉的 /sites-available,也没有 /sites-enabled
继续查看nginx配置
<span># cat /conf.d/default.conf</span><span>server</span> { listen <span>80</span>; server_name localhost; <span>#charset koi8-r;</span><span>#access_log /var/log/nginx/log/host.access.log main;</span> location / { root /usr/share/nginx/html; <span>index</span><span>index</span>.html <span>index</span>.htm; } <span>#error_page 404 /404.html;</span><span># redirect server error pages to the static page /50x.html</span><span>#</span> error_page <span>500</span><span>502</span><span>503</span><span>504</span> /<span>50</span>x.html; location = /<span>50</span>x.html { root /usr/share/nginx/html; } <span>#...省略php-fpm配置,好长..</span> }
根目录配置: root /usr/share/nginx/html;
测试
<span># cd /usr/share/nginx/html</span><span># touch index.html</span><span># echo "test nginx in docker" >index.html</span>
php-fpm配置相关
'').addClass(''pre-numbering'').hide(); $(this).addClass(''has-numbering'').parent().append($numbering); for (i = 1; i '').text(i)); }; $numbering.fadeIn(1700); }); });以上就介绍了167 docker docker构建nginx容器系列问题,包括了docker,nginx方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
Centos7安装nginx(二)之docker中安装nginx
一、简介
本人最近对k8s+docker容器云、微服务进行一些调研,尝试着在docker中安装Nginx。先来安利docker一波,真是神器,但是对于docker的有点本人将在docker的相关文章中介绍。
- 需求:做自动化运维的同学可能需要测试自己写完的shell脚本,docker是一个比虚拟机快照更方便的选择。只需要启动一个docker容器,将写好的脚本以挂载文件的方式,在docker容器中运行即可(copy进去再执行也可以)。
- 环境: 虚拟机+docker
- 优点:当shell脚本有问题的时候,直接kill掉docker容器,修改完shell后重启一个容器再运行即可。
- 目的:为了练习Nginx的安装配置。由于docker使用Linux内核namespace\cgroup等隔离技术,近似等同于虚拟机(有些隔离做的不彻底,不能完全等同于),在docker中练习安装Nginx比跟在虚拟机上安装相差无异,但开销更少。如果仅仅是为了在docker中使用Nginx,只需要直接拉取Nginx镜像再开启容器即可。
二、安裝过程
在docker中安装Nginx的步骤跟上一篇文章Centos7安装nginx(一)大致相同。需要注意的是在docker中使用systemctl必须以特殊的方式启动容器,否则会报错Docker: Failed to get D-Bus connection: Operation not permitted
安装过程主要分为二部分:
- 启动容器
- 安装Nginx
安装部分参考文章Centos7安装nginx(一),本文重点讲解如何启动docker容器,避免在配置systemctl来管理Nginx时出现报错信息。
1. 启动容器
- 容器的正确启动姿势
docker pull centos:7
(拉取镜像)
docker images
(查看镜像具体信息)
步骤3中的镜像版本要与拉去下来的版本信息对应docker run -d --name Nginx --privileged=true docker.io/centos:7 /usr/sbin/init
(以后台运行的方式启动容器)
docker exec -it Nginx /bin/bash
(进入容器)
- docker容器中使用systemctl报错总结
-
Docker: Failed to get D-Bus connection: Operation not permitted
- 原因
- 这个的原因是因为dbus-daemon没能启动。启动容器时,带上参数
--privileged=true
、将你的CMD或者entrypoint设置为/usr/sbin/init
即可(两者缺一不可)。会自动将dbus等服务启动起来。
- 这个的原因是因为dbus-daemon没能启动。启动容器时,带上参数
- 解决办法:
- 在启动容器时添加参数
- docker run -d --name centos7 --privileged=true centos:7 /usr/sbin/init
- docker exec -it centos7 /bin/bash
- 在启动容器时添加参数
- 原因
2. 安装Nginx
参考文章Centos7安装nginx(一)
三、总结
本文主要记录了docker中使用systemctl的报错问题,为下一篇文章Centos7安装nginx(三)之shell脚本自动化安装nginx,通过shell自动化安装Nginx做准备。文章可能在编辑过程中,由于个人疏忽、不同版本markdown解析器不兼容等原因导致字符书写错误,导致安装失败。本文属于原创,若有引用请注明出处。若有疑问或错误,欢迎各位指出,可以评论或者跟本人联系。
docker - nginx 安装
# docker pull nginx:1.15.12
docker run \
--name nginx \
-p 443:443 \
-p 80:80 \
-v /usr/local/nginx/html/:/usr/share/nginx/html:ro \
-v /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /usr/local/nginx:/var/run \
-v /usr/local/nginx/logs/:/var/log/nginx/:rw \
-v /usr/local/nginx/ssl/:/ssl/:ro \
-v /usr/local/nginx/include:/etc/nginx/include \
-d nginx:1.15
vim
:set fileformat=unix
Docker Alpine Dockerfile 安装nginx,最小镜像
Docker Alpine Dockerfile 安装Nginx,最小镜像
FROM alpine MAINTAINER will ## 将alpine-linux:apk的安装源改为国内镜像 RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories ## 安装需要编译Nginx扩展 ## 安装正则表达式pcre模块,Nginx正则匹配URL RUN apk add wget gcc g++ make && \ cd /home && \ wget "https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz" && \ tar xvf pcre-8.44.tar.gz && \ wget "http://Nginx.org/download/Nginx-1.18.0.tar.gz" && \ tar xvf Nginx-1.18.0.tar.gz ## 编译Nginx RUN cd /home/Nginx-1.18.0 && \ ./configure --prefix=/usr/local/Nginx --with-pcre=/home/pcre-8.44 --without-http_gzip_module && \ make && make install && \ ln -s /usr/local/Nginx/sbin/Nginx /usr/sbin/ && \ mkdir -p /usr/local/Nginx/conf/vhost/ rm -rf /home/* ## 设置工作目录 workdir /var/www ## 启动Nginx CMD ["Nginx","-g","daemon off;"] EXPOSE 80
关于Docker 安装 Nginx和docker安装nginx并挂载目录的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于167 docker docker构建nginx容器系列问题 docker registry docker run docker toolbo、Centos7安装nginx(二)之docker中安装nginx、docker - nginx 安装、Docker Alpine Dockerfile 安装nginx,最小镜像等相关内容,可以在本站寻找。
本文标签: