Linux


Docker安装Nginx

<p>[TOC]</p> <h1>安装</h1> <h2>拉取nginx镜像到本地</h2> <pre><code>docker pull nginx</code></pre> <h2>查看镜像库,获取本地的nginx镜像信息</h2> <pre><code>[root@xylw ~]# docker images nginx REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 605c77e624dd 6 months ago 141MB</code></pre> <h2>启动容器测试是否可用</h2> <pre><code>docker run -d --name nginx -p 80:80 605c</code></pre> <blockquote> <p>605c为IMAGE ID -d 指定容器以守护进程方式在后台运行 –name 指定容器名称,此处我指定的是nginx -p 指定主机与容器内部的端口号映射关系,格式 -p [宿主机端口号]:[容器内部端口],此处我使用了主机80端口,映射容器80端口</p> </blockquote> <p>执行成功返回 CONTAINER ID<code>bdf02506135d182f1bef29468779efed6439e1245893049a290384da3fdeb626</code> 执行<code>docker ps</code>可以看到运行的容器</p> <pre><code>[root@xylw d]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bdf02506135d 605c "/docker-entrypoint.…" 41 seconds ago Up 39 seconds 0.0.0.0:80-&gt;80/tcp, :::80-&gt;80/tcp nginx</code></pre> <p>开放80端口,并重启防火墙</p> <pre><code>firewall-cmd --zone=public --add-port=80/tcp --permanent systemctl restart firewalld.service</code></pre> <blockquote> <p>命令含义: --zone #作用域 --add-port=80/tcp #添加端口,格式为:端口/通讯协议 --permanent #永久生效,没有此参数重启后失效</p> </blockquote> <p>在浏览器访问CentOS主机,看到Nginx的欢迎页即成功。</p> <h1>修改nginx的配置文件</h1> <p>修改配置有两种方式,一种是进入容器中修改,第二种是将nginx容器内部配置文件挂载到主机,此处省略第一种方式,以下是第二种方式的操作。</p> <h2>创建本地目录</h2> <pre><code>mkdir -p ./nginx/{conf,html,logs}</code></pre> <h2>将容器中的相应文件copy到主机目录中</h2> <pre><code>docker cp bdf:/etc/nginx/nginx.conf /d/nginx docker cp bdf:/etc/nginx/conf.d/default.conf /d/nginx/conf/</code></pre> <blockquote> <p><code>bdf</code>为容器ID</p> </blockquote> <h2>停止并移除容器</h2> <pre><code>docker stop bdf docker rm bdf</code></pre> <h2>启动容器挂载目录</h2> <pre><code>docker run -d --name nginx -p 80:80 -v /d/nginx/nginx.conf:/etc/nginx/nginx.conf -v /d/nginx/logs:/var/log/nginx -v /d/nginx/html:/usr/share/nginx/html -v /d/nginx/conf:/etc/nginx/conf.d --privileged=true nginx</code></pre> <blockquote> <p>参数说明 -name 给你启动的容器起个名字,以后可以使用这个名字启动或者停止容器 -p    映射端口,将docker宿主机的80端口和容器的80端口进行绑定 -v    挂载文件用的, -e TZ=Asia/Shanghai 设置时区 第一个-v 表示将你本地的nginx.conf覆盖你要起启动的容器的nginx.conf文件, 第二个-v 表示将日志文件进行挂载,就是把nginx服务器的日志写到你docker宿主机的/d/nginx/logs/下面 第三个-v 表示的和第一个-v意思一样的。</p> </blockquote> <p>在浏览器访问CentOS主机,看到403界面,这时要在<code>/d/nginx/html/</code>中新建<code>index.html</code>,再次访问成功。</p> <pre><code>&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;nginx&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;Hello Nginx.......&lt;/h1&gt; &lt;/body&gt; &lt;/html&gt;</code></pre> <h1>安装mysql</h1> <pre><code>docker run --restart=always --name mysql57 -d -p 3306:3306 -v /d/mysql/conf:/etc/mysql/conf.d -v /d/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1qaz2wsx mysql:5.7</code></pre>

页面列表

ITEM_HTML