Docker系列(五)实战:在容器中部署静态网站
文章目录
- 设置容器的端口映射
- 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
能够指定映射哪些容器的端口。容器端口的映射有以下几种格式:
- 只指定容器的端口(
containerPort
),这种情况下,宿主机的端口是随机映射的:
docker run -p 80 -i -t ubuntu /bin/bash
- 同时指定宿主机端口和容器端口(
hostPort:containerPort
),这样的端口映射是一一对应的:
docker run -p 8080:80 -i -t ubuntu /bin/bash
- 指定IP和容器的端口(
ip::containerPort
)
docker run -p 0.0.0.0:80 -i -t ubuntu /bin/bash
- 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+P
和Q
来退出容器,使其在后台运行。可以通过ps
命令来查看:
docker ps
这个命令也可以查看容器映射的端口,将容器的80
端口,映射到主机的32770
端口上:
也可以使用port
命令来查看端口的映射情况:
docker port web
还可以通过docker
的top
命令查看容器中进程的运行情况:
docker top web
验证网站访问
宿主机的ip地址访问
在命令行中使用curl
命令查看网站是否可以访问,这里就需要用到查看到的端口:
curl http://127.0.0.1:32770
127.0.0.1
是回送地址,指本地机,一般用来测试使用。
也可以在网页中打开。
容器的ip地址访问
使用docker
的inspect
命令查看容器的ip
地址:
docker inspect web
可以看到容器的ip地址为:172.17.0.2
这里也可以通过这个地址进行网页的访问,访问时就无需指定端口号了,因为默认的80
端口就可以访问:
- 如果此时关掉再重启,容器中的
nginx
是没有的:
此时我们ctrl + P
和Q
退出容器,使其后台运行。这时我们可以用docker
的exec
命令来启动nginx
:
docker exec web nginx
我们可以通过top
命令查看容器内部nginx
是否被启动:
docker top web
此时可以通过docker inspect
命令查看容器的IP是否发生改变。
Docker系列(五)实战:在容器中部署静态网站相关推荐
- Docker 在容器中部署静态网站
Docker 在容器中部署静态网站 在容器中部署静态网站 设置容器的端口映射 run -P``--publish-all=true|false:容器暴露的所有端口进行映射 -p``--publish= ...
- docker部署html页面,Docker 案例: 在容器中部署静态网站
----------------知识点------------ 容器的端口映射: docker run [-P] [-p] -P,–publish-all=true | false,大写的P表示为 ...
- 【Docker】练习-在容器中部署静态网站
创建映射80端口的交互式容器 安装Nginx 安装文本编辑器vim 创建静态页面 修改Nginx配置文件 运行Nginx 验证网页访问 1.运行一个待端口映射的交互容器,命名为web docker r ...
- docker部署html页面,在Docker容器中部署静态网页的方法教程
前言 一般我们在访问容器时需要通过容器的端口来访问,那如何设置容器的端口映射呢? 我们通过以下命令来设置: docker run -p ip:hostPort:containerPort [--nam ...
- Openstack技术\在Docker容器中部署MySQL,并通过外部mysql客户端操作MySQL Server
MySQL部署 在Docker容器中部署MySQL,并通过外部mysql客户端操作MySQL Server. 操作步骤: 搜索mysql镜像 拉取mysql镜像 创建容器 操作容器中的mysql 容器 ...
- Docker系列五~docker安装php-fpm
Docker系列五 docker安装php-fpm 访问PHP镜像库地址: https://hub.docker.com/_/php?tab=tags 选择合适的版本 php-fpm镜像主要是提供ph ...
- Docker系列之八:在Dockerfile中使用多段构建Muti-stage build
系列链接 Docker系列之一:Docker介绍及在Ubuntu上安装 Docker系列之二:Docker 入门 Docker系列之三:使用Docker镜像和仓库 Docker系列之四:Dockerf ...
- ONNX系列五 --- 在C#中使用可移植的ONNX AI模型
目录 安装和导入ONNX运行时 载入ONNX模型 使用ONNX运行时进行预测 摘要和后续步骤 参考文献 下载源547.1 KB 系列文章列表如下: ONNX系列一 --- 带有ONNX的便携式神经网络 ...
- web文件 群晖_【原创】群晖NAS 上部署静态网站
概要 1.简介 NAS 除了用来管理文件,用作个人云盘之外,还有很多用途.因为群晖的操作系统 DSM 本身就是一个 Debian 的定制系统,所以完全可以把 NAS 当作一台个人的服务器,你可以在上面 ...
- 如何使用 Serverless Devs 部署静态网站到函数计算(上)
简介:部署个静态网站到函数计算~ 前言 公司经常有一些网站需要发布上线,对比了几款不同的产品后,决定使用阿里云的函数计算(FC)来托管构建出来的静态网站. FC 弹性实例自带的500 Mb 存储空间对 ...
最新文章
- cnblogs,我来了
- 机器智能公司一览图 | 36氪
- 四种launchMode
- python 两数之和
- XMLHttpRequest对象在IE和Firefox中创建方式有没有不同?
- Codeforces 976F
- jquery创建并行对象或者叫合并对象
- 早晚安打卡签到v2.0.1 公众号模块
- 数字化定量分析_数字化定量分析
- Android端公司通讯录开发与实现(一)
- python防撤回_一篇关于微信防撤回(文本、图片、语音、视频、名片等...)的Python学习教程...
- 【操作系统】CPU寄存器详解
- Linux中etc目录详解大全总汇详解
- STM8S003做无刷电机控制需要配置的选项字节
- java学习第二周周记
- MySQL中where 1=1真的会影响性能么?
- GD32F303CCT6与GD32F407VKTC spi 主从通信
- QT实现简易计算器。
- Cmake和Mingw下载
- 计算机网络实验之IPV4地址 - - 构造超网(无分类编址)