通过docker部署nginx服务
<h1>运行一个容器</h1>
<pre><code class="language-shell">[root@karen ~]# docker run --name nginx -p 80 -itd centos
#-p把容器端口随机在物理机随机映射一个端口
[root@karen ~]# docker ps | grep nginx
ecfa046e9681 centos &quot;/bin/bash&quot; 5 seconds ago Up 4 seconds 0.0.0.0:49153-&gt;80/tcp, :::49153-&gt;80/tcp nginx</code></pre>
<h1>在docker里安装nginx</h1>
<pre><code class="language-shell">#进入nginx容器
[root@karen ~]docker exec -it nginx /bin/bash
[root@ecfa046e9681]# ip addr
1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: tunl0@NONE: &lt;NOARP&gt; mtu 1480 qdisc noop state DOWN group default qlen 1000
link/ipip 0.0.0.0 brd 0.0.0.0
21: eth0@if22: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
#通过上面可以看到容器的ip是172.17.0.3
#yum安装nginx
[root@ecfa046e9681]# rm -rf /etc/yum.repos.d/*
[root@ecfa046e9681]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
[root@ecfa046e9681]# yum install wget -y
[root@ecfa046e9681]# yum install nginx -y
#安装文本编辑器vim
[root@ecfa046e9681]# yum install vim-enhanced -y
#创建静态页面
[root@ecfa046e9681]# mkdir /var/www/html -p
[root@ecfa046e9681]# cd /var/www/html/
[root@ecfa046e9681]# cat index.html
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;nginx in docker&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;hello,My Name is xianchao&lt;/h1&gt;
&lt;/body&gt;
&lt;/html&gt;
#修改nginx配置文件中的root路径,如下
[root@ecfa046e9681]# vim /etc/nginx/nginx.conf
root /var/www/html/;
#启动nginx
[root@ecfa046e9681]# /usr/sbin/nginx</code></pre>
<h1>访问docker里的nginx服务</h1>
<pre><code class="language-shell">[root@karen ~]# docker ps | grep nginx
ecfa046e9681 centos &quot;/bin/bash&quot; 12 minutes ago Up 12 minutes 0.0.0.0:49153-&gt;80/tcp, :::49153-&gt;80/tcp nginx
#能查看到nginx容器在物理机映射的端口是49153
[root@karen ~]# curl http://192.168.40.180:49153
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;nginx in docker&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;hello,My Name is xianchao&lt;/h1&gt;
&lt;/body&gt;
&lt;/html&gt;
#也可以直接访问容器的ip:port
[root@karen ~]# curl 172.17.0.3:80
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;nginx in docker&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;hello,My Name is xianchao&lt;/h1&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre>
<p>流量走向:
访问物理节点ip:port(容器在物理节点映射的端口)--容器ip:port(容器里部署的服务的端口)->就可以访问到容器里部署的应用了</p>