[Docker系列-2] 搭建nginx环境

简介:

1、获取Nginx容器端口

首先确保 docker 正在运行:

docker-machine ls  

1.1、启动进程

docker run -d -P --name web nginx  
  • docker run:启动一个容器
  • -d:后台运行容器
  • -P:开放容器的映射端口,方便你从Mac访问

1.2、查看容器状态

docker ps  
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                           NAMES  
7afc79513310        nginx               "nginx -g 'daemon off"   10 hours ago        Up 5 seconds        0.0.0.0:32769->80/tcp, 0.0.0.0:32768->443/tcp   web  

可以看到已经启动nginx服务了

1.3、查看容器端口

docker port web  
443/tcp -> 0.0.0.0:32768  
80/tcp -> 0.0.0.0:32769  

可以看到容器的80端口映射到容器Docker主机的32769端口————监听主机上的32769端口相当于监听容器的80端口。

不过你现在访问http://localhost:32769你会发现找不到服务;

1.4、获取VM的IP

这是因为localhost 和 docker主机不一致,你需要获得VM的IP地址。

docker-machine ip default  #192.168.99.100  

现在在浏览器里打开http://192.168.99.100:32769就能看到熟悉的nginx界面了

那如何通过外面主机的公网IP查看效果呢?

STEP 1::查看主机IP

  ~  ifconfig | grep inet
    inet6 ::1 prefixlen 128
    inet 127.0.0.1 netmask 0xff000000
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
    inet6 fe80::62f8:1dff:fea9:bd98%en0 prefixlen 64 scopeid 0x4
    inet 10.2.87.112 netmask 0xfffff800 broadcast 10.2.87.255
    inet6 fe80::645a:84ff:fea9:1515%awdl0 prefixlen 64 scopeid 0x8
    inet 192.168.59.3 netmask 0xffffff00 broadcast 192.168.59.255
    inet 192.168.99.1 netmask 0xffffff00 broadcast 192.168.99.255

可以看到主机有两个IPv4的地址:一个是公网IP10.2.87.112,一个是192.168.59.3 。(请忽略192.168.99.1,因为还启用了另外一个虚拟机产生的)

我们希望能够通过 http://10.2.87.112:10000或者 http://192.168.59.3:10000能够访问到nginx的欢迎界面,直接打开是错误页面,需要进行端口映射操作。

STEP 2 : 设置端口映射

打开虚拟机设置界面,可以看到默认有一条设置了ssh的端口,是将主机的2022端口映射到虚拟机的22端口。为了将主机的10000端口映射到32769端口,我们添加一条映射规则,步骤如下:

设置端口映射

好了现在访问 http://10.2.87.112:10000或者 http://192.168.59.3:10000 就能看到熟悉的界面了。

参看文章:VMware NAT端口映射

1.5、关闭容器

最后关闭并移除容器的命令是

$ docker stop web
$ docker rm web

2、挂载文件夹

一旦开启 docker 之后,会自动共享/Users文件夹。 你可以将这个文件夹挂载到容器上。

2.1、创建示例文件夹及文件

$ cd $HOME
$ mkdir site
$ cd site
$ echo "my new site" > index.html

2.2、重启nginx服务并替换Html文件夹

$ docker run -d -P -v $HOME/site:/usr/share/nginx/html --name mysite nginx
$ docker port mysite
80/tcp -> 0.0.0.0:49166  
443/tcp -> 0.0.0.0:49165  

在浏览器里查看效果: 效果

2.3、实时更新内容

$HOME/site中添加新的文件:

$ echo "This is cool" > cool.html

新添加的文件

2.4、暂停并移除容器

$ docker stop mysite
$ docker rm mysite
目录
相关文章
|
18天前
|
应用服务中间件 Linux nginx
Docker镜像-手动制作yum版nginx镜像
这篇文章介绍了如何手动制作一个基于CentOS 7.6的Docker镜像,其中包括下载指定版本的CentOS镜像,创建容器,配置阿里云软件源,安装并配置nginx,自定义nginx日志格式和web页面,最后提交镜像并基于该镜像启动新容器的详细步骤。
79 21
Docker镜像-手动制作yum版nginx镜像
|
18天前
|
应用服务中间件 nginx Docker
Docker镜像-基于DockerFile制作编译版nginx镜像
这篇文章介绍了如何基于Dockerfile制作一个编译版的nginx镜像,并提供了详细的步骤和命令。
94 17
Docker镜像-基于DockerFile制作编译版nginx镜像
|
18天前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
17天前
|
虚拟化 Docker Windows
window 10专业版部署docker环境
本文介绍了如何在Windows 10专业版上部署Docker环境,包括安装步骤、配置镜像加速以及可能遇到的错误处理。
41 2
window 10专业版部署docker环境
|
18天前
|
应用服务中间件 Linux nginx
Docker镜像-基于DockerFile制作yum版nginx镜像
本文介绍了如何使用Dockerfile制作一个基于CentOS 7.6.1810的yum版nginx镜像,并提供了详细的步骤和命令。
60 20
|
1月前
|
应用服务中间件 nginx Docker
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
这篇文章介绍了如何通过域名在本地访问虚拟机上的nginx服务,包括创建nginx容器、修改配置文件、修改本地host文件以及进行访问测试的详细步骤。文章提供了具体的Docker命令来创建并配置nginx容器,展示了配置文件的修改示例,说明了如何在本地系统的hosts文件中添加虚拟机IP和自定义域名,以及如何通过浏览器进行测试访问。
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
|
18天前
|
SQL 安全 数据库
Web安全漏洞专项靶场—SQL注入—docker环境—sqli-labs靶场—详细通关指南
Web安全漏洞专项靶场—SQL注入—docker环境—sqli-labs靶场—详细通关指南
44 1
|
22天前
|
前端开发 应用服务中间件 nginx
[译] 面向 React 和 Nginx 的 Docker 多阶段构建
[译] 面向 React 和 Nginx 的 Docker 多阶段构建
[译] 面向 React 和 Nginx 的 Docker 多阶段构建
|
1月前
|
Linux 数据库 数据安全/隐私保护
|
1月前
|
消息中间件 负载均衡 应用服务中间件
高并发环境下的Nginx整合方案
【8月更文挑战第20天】在高并发环境下,整合Nginx代理服务器、静态文件服务器、Tomcat集群、Mycat数据库读写分离和消息队列,可以构建一个强大、灵活且可扩展的Web服务架构。
29 1