文章目录

  • 设置容器的端口映射
  • Nginx部署流程
    • 创建映射80端口的交互式容器
    • 安装Nginx、vim
    • 创建静态页面
    • 修改Nginx配置文件
    • 运行Nginx
    • 验证网站访问
      • 宿主机的ip地址访问
      • 容器的ip地址访问

设置容器的端口映射

  网站服务通常通过80端口提供的,那如何访问容器的80端口呢?这就需要在运行容器是设置容器的端口映射。

  通过run命令的两个选项来实现这个功能,一个是大写的P,一个是小写的p

run [-P] [-p]
  • -P--publish-all= true | false默认为false。使用大写的P将为容器暴露的所有的端口进行映射
docker run -P -i -t ubuntu /bin/bash
  • -p--publish=[]。使用小写的p能够指定映射哪些容器的端口。容器端口的映射有以下几种格式:
  1. 只指定容器的端口(containerPort),这种情况下,宿主机的端口是随机映射的:
docker run -p 80 -i -t ubuntu /bin/bash
  1. 同时指定宿主机端口和容器端口(hostPort:containerPort),这样的端口映射是一一对应的:
docker run -p 8080:80 -i -t ubuntu /bin/bash
  1. 指定IP和容器的端口(ip::containerPort)
docker run -p 0.0.0.0:80 -i -t ubuntu /bin/bash
  1. IP宿主机端口和容器端口(ip: hostPort: containerPort)
docker run -p 0.0.0.0:8080:80 -i -t ubuntu /bin/bash

Nginx部署流程

  如何在容器中部署Nginx服务。

创建映射80端口的交互式容器

  首先运行一个带端口映射的交互容器,这个容器命名为web,依旧使用Ubuntu作为系统

docker run -p 80 --nane web -i -t ubuntu /bin/bash

  之后就会显示我们已经进入系统。

安装Nginx、vim

  进入系统之后,我们使用apt-get进行安装:

apt-get install -y apt
apt-get install vim

  完整的Nginx安装教程:nginx: Linux packages。

创建静态页面

  接下来创建将要运行在nginx中的网站,首先建立一个存放网站的目录:

mkdir -p /var/www/html
cd /var/www/html

  之后使用vim创建并编辑一个静态页面

vim index.html

  使用i切换到插入模式,建立一个简单地静态界面

  :wq保存并退出。

修改Nginx配置文件

  之后就需要编辑nginx的配置文件。先使用whereis命令查找一下nginx安装在哪:

whereis nginx

  然后查看nginx的配置文件位置

ls /etc/nginx
ls /etc/nginx/sites-enabled

  然后打开default文件

vim /etc/nginx/sites-enabled/default

  将其中root的值修改为刚刚建立的静态网站的位置/var/www/html,保存并退出。

运行Nginx

  之后切换到根目录运行nginx,使用ps命令可以查看当前的进程

cd
nginx
ps -ef

  在进程中可以看到nginx已经运行起来了,ctrl+PQ来退出容器,使其在后台运行。可以通过ps命令来查看:

docker ps

  这个命令也可以查看容器映射的端口,将容器的80端口,映射到主机的32770端口上:

  也可以使用port命令来查看端口的映射情况:

docker port web

  还可以通过dockertop命令查看容器中进程的运行情况:

docker top web

验证网站访问

宿主机的ip地址访问

  在命令行中使用curl命令查看网站是否可以访问,这里就需要用到查看到的端口:

curl http://127.0.0.1:32770

  127.0.0.1是回送地址,指本地机,一般用来测试使用。

  也可以在网页中打开。

容器的ip地址访问

  使用dockerinspect命令查看容器的ip地址:

docker inspect web

  可以看到容器的ip地址为:172.17.0.2

  这里也可以通过这个地址进行网页的访问,访问时就无需指定端口号了,因为默认的80端口就可以访问:

  • 如果此时关掉再重启,容器中的nginx是没有的

  此时我们ctrl + PQ退出容器,使其后台运行。这时我们可以用dockerexec命令来启动nginx

docker exec web nginx

  我们可以通过top命令查看容器内部nginx是否被启动:

docker top web

  此时可以通过docker inspect命令查看容器的IP是否发生改变。

Docker系列(五)实战:在容器中部署静态网站相关推荐

  1. Docker 在容器中部署静态网站

    Docker 在容器中部署静态网站 在容器中部署静态网站 设置容器的端口映射 run -P``--publish-all=true|false:容器暴露的所有端口进行映射 -p``--publish= ...

  2. docker部署html页面,Docker 案例: 在容器中部署静态网站

    ----------------知识点------------ 容器的端口映射: docker  run  [-P] [-p] -P,–publish-all=true | false,大写的P表示为 ...

  3. 【Docker】练习-在容器中部署静态网站

    创建映射80端口的交互式容器 安装Nginx 安装文本编辑器vim 创建静态页面 修改Nginx配置文件 运行Nginx 验证网页访问 1.运行一个待端口映射的交互容器,命名为web docker r ...

  4. docker部署html页面,在Docker容器中部署静态网页的方法教程

    前言 一般我们在访问容器时需要通过容器的端口来访问,那如何设置容器的端口映射呢? 我们通过以下命令来设置: docker run -p ip:hostPort:containerPort [--nam ...

  5. Openstack技术\在Docker容器中部署MySQL,并通过外部mysql客户端操作MySQL Server

    MySQL部署 在Docker容器中部署MySQL,并通过外部mysql客户端操作MySQL Server. 操作步骤: 搜索mysql镜像 拉取mysql镜像 创建容器 操作容器中的mysql 容器 ...

  6. Docker系列五~docker安装php-fpm

    Docker系列五 docker安装php-fpm 访问PHP镜像库地址: https://hub.docker.com/_/php?tab=tags 选择合适的版本 php-fpm镜像主要是提供ph ...

  7. Docker系列之八:在Dockerfile中使用多段构建Muti-stage build

    系列链接 Docker系列之一:Docker介绍及在Ubuntu上安装 Docker系列之二:Docker 入门 Docker系列之三:使用Docker镜像和仓库 Docker系列之四:Dockerf ...

  8. ONNX系列五 --- 在C#中使用可移植的ONNX AI模型

    目录 安装和导入ONNX运行时 载入ONNX模型 使用ONNX运行时进行预测 摘要和后续步骤 参考文献 下载源547.1 KB 系列文章列表如下: ONNX系列一 --- 带有ONNX的便携式神经网络 ...

  9. web文件 群晖_【原创】群晖NAS 上部署静态网站

    概要 1.简介 NAS 除了用来管理文件,用作个人云盘之外,还有很多用途.因为群晖的操作系统 DSM 本身就是一个 Debian 的定制系统,所以完全可以把 NAS 当作一台个人的服务器,你可以在上面 ...

  10. 如何使用 Serverless Devs 部署静态网站到函数计算(上)

    简介:部署个静态网站到函数计算~ 前言 公司经常有一些网站需要发布上线,对比了几款不同的产品后,决定使用阿里云的函数计算(FC)来托管构建出来的静态网站. FC 弹性实例自带的500 Mb 存储空间对 ...

最新文章

  1. cnblogs,我来了
  2. 机器智能公司一览图 | 36氪
  3. 四种launchMode
  4. python 两数之和
  5. XMLHttpRequest对象在IE和Firefox中创建方式有没有不同?
  6. Codeforces 976F
  7. jquery创建并行对象或者叫合并对象
  8. 早晚安打卡签到v2.0.1 公众号模块
  9. 数字化定量分析_数字化定量分析
  10. Android端公司通讯录开发与实现(一)
  11. python防撤回_一篇关于微信防撤回(文本、图片、语音、视频、名片等...)的Python学习教程...
  12. 【操作系统】CPU寄存器详解
  13. Linux中etc目录详解大全总汇详解
  14. STM8S003做无刷电机控制需要配置的选项字节
  15. java学习第二周周记
  16. MySQL中where 1=1真的会影响性能么?
  17. GD32F303CCT6与GD32F407VKTC spi 主从通信
  18. QT实现简易计算器。
  19. Cmake和Mingw下载
  20. 计算机网络实验之IPV4地址 - - 构造超网(无分类编址)

热门文章

  1. PyQt之按钮传递鼠标按下事件点击失效
  2. MySQL数据库(四)
  3. MP(Multi-Link PPP)原理和实验
  4. 华为 “Telnet” 登录设备
  5. Docker详解(三)——Docker安装与部署
  6. CICD详解(十二)——Sonar安装与配置
  7. WLAN配置实例(二)——三层组网隧道转发
  8. 华三 h3c 交换机RSTP配置
  9. Mongo 常用操作
  10. Redis高并发1-redis环境搭建