[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
目录
相关文章
kde
|
1月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
kde
739 4
|
4月前
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
1月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
110 5
|
2月前
|
Kubernetes 应用服务中间件 Nacos
Kubernetes环境下Nginx代理Nacos服务请求故障诊断
以上方法不仅适用于排除特定环境下出现故障情况,也适合作为一般性指南帮助运维人员快速准确地找出并解决问题。实际操作中还需根据现场实际情况灵活运用这些技巧,并结合自身经验进行判断和处理。
96 12
|
3月前
|
缓存 Ubuntu Docker
Ubuntu环境下删除Docker镜像与容器、配置静态IP地址教程。
如果遇见问题或者想回滚改动, 可以重启系统.
281 16
|
9月前
|
数据采集 存储 Docker
深入理解Docker:为你的爬虫项目提供隔离环境
本教程介绍如何使用Docker构建隔离环境,运行Python爬虫项目,采集小红书视频页面的简介和评论。主要内容包括: 1. **Docker隔离环境**:通过Docker容器化爬虫,确保环境独立、易于部署。 2. **代理IP技术**:利用亿牛云爬虫代理突破反爬限制。 3. **Cookie与User-Agent设置**:伪装请求头,模拟真实用户访问。 4. **多线程采集**:提高数据采集效率。 前置知识要求:Python基础、Docker基本操作及HTML解析(可选)。教程还涵盖常见错误解决方法和延伸练习,帮助你优化爬虫代码并避免陷阱。
265 7
深入理解Docker:为你的爬虫项目提供隔离环境
|
5月前
|
消息中间件 监控 Docker
Docker环境下快速部署RabbitMQ教程。
就这样,你成功地用魔法召唤出了RabbitMQ,还把它和你的应用程序连接了起来。现在,消息会像小溪流水一样,在你的系统中自由流淌。别忘了,兔子们不喜欢孤独,他们需要你细心的关怀,不时地监控它们,确保他们的世界运转得井井有条。
342 18
|
4月前
|
弹性计算 关系型数据库 Nacos
低配阿里云 ECS 如何 docker 环境部署 NACOS : 单机版模式
NACOS 单机版 Docker 安装指南。使用指定端口和 custom.env 配置文件启动 Nacos 服务,适用于 2.X 版本,包含 gRPC 支持及 MySQL 数据源配置。 -e MODE=standalone \
407 5
|
5月前
|
消息中间件 监控 Docker
Docker环境下快速部署RabbitMQ教程。
至此,这次神秘而简明的部署之旅告一段落。祝你在利用RabbitMQ打造消息队列时,一切顺风顺水!
235 8