练习实践-docker下搭建web应用_nginx

参考来源:
https://blog.csdn.net/BThinker/article/details/123507820

操作步骤复述和练习实践记录:

1.获取nginx镜像

查看本地有无nginx镜像,如果没有,去公共仓库上搜索,对应命令docker search nginx,通过命令docker pull nginx:latest 将镜像从仓库拉取到本地;
因为通过命令 docker images 发现本地有nginx镜像,此步骤忽略。

2.在宿主机创建nginx的配置文件目录;

提醒:nginx的配置的三个重点,配置、日志、网页内容

mkdir -p /home/nginx/conf  /home/nginx/log /home/nginx/html

3.启动一个nginx容器,将配置文件从容器复制到宿主机中;

提醒:注意观察nginx的默认配置文件路径

root@ub1804:/home/nginx# docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
root@ub1804:/home/nginx# docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
root@ub1804:/home/nginx# docker cp nginx:/usr/share/nginx/html /home/nginx/

4.确认复制完成后,停止并删除该容器;

root@ub1804:/home/nginx# tree
.
├── conf
│   ├── conf.d
│   │   └── default.conf
│   └── nginx.conf
├── html
│   ├── 50x.html
│   └── index.html
└── log

4 directories, 4 files
root@ub1804:/home/nginx# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                               NAMES
98b43e11a707   nginx     "/docker-entrypoint.…"   6 minutes ago   Up 6 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   nginx
root@ub1804:/home/nginx# docker stop nginx
nginx
root@ub1804:/home/nginx# docker rm 98b4
98b4
root@ub1804:/home/nginx# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

5.重新启动一个docker容器,并且制定存储卷的形式将配置文件从宿主机挂载到容器中;

提醒:持久化存储

root@ub1804:/home/nginx# docker run \
> -p 80:80 \
> --name nginx \
> -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
> -v /home/nginx/log:/var/log/nginx \
> -v /home/nginx/html:/usr/share/nginx/html \
> -d nginx
741b7f3a08ae50bc1bf3284deaff0ba17596299081f18e06643421a73f212f26
root@ub1804:/home/nginx# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                               NAMES
741b7f3a08ae   nginx     "/docker-entrypoint.…"   4 seconds ago   Up 3 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp   nginx

6.验证配置改动,修改宿主机中nginx的首页配置文件,查看容器内页面即时是否更新;

root@ub1804:/home/nginx/html# vim index.html
root@ub1804:/home/nginx/html#
root@ub1804:/home/nginx/html# curl 127.0.0.1:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to xiaoyue nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

#<p>For online documentation and support please refer to
#<a href="http://nginx.org/">nginx.org</a>.<br/>
#Commercial support is available at
#<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using xiaoyue nginx.</em></p>
</body>
</html>

一个观点:中间件领域十分适合引入容器技术

来源:书籍《docker技术入门及实战》第十一章

包括Web服务在内的中间件领域十分适合引入容器技术,原因如下:

·中间件服务器是除数据库服务器外的主要计算节点,很容易成为性能瓶颈,所以通常需要大批量部署,而Docker对于批量部署有着许多先天的优势;【伸缩性,易扩展,需要配合docker的集群技术实现】

·中间件服务器结构清晰,在剥离了配置文件、日志、代码目录之后,容器几乎可以处于零增长状态,这使得容器的迁移和批量部署更加方便;

·中间件服务器很容易实现集群,在使用硬件的F5、软件的Nginx等负载均衡后,中间件服务器集群变得非常容易。

在实践过程中,读者需要注意数据的持久化。对于程序代码、程序的资源目录、日志、数据库文件等需要实时更新的数据一定要通过-v参数映射到宿主主机的目录中来,避免发生数据丢失和带来性能下降。

##END提示,>.!.<

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值