Docker | 部署nginx服务

本文涉及的产品
云防火墙,500元 1000GB
简介: Docker | 部署nginx服务

1、下载nginx镜像


docker pull nginx


2、查看下载的镜像


docker ps


3、启动nginx镜像


docker run -d --name nginx01 -p 3344:80 nginx(镜像名或者镜像id)

image.png


4、查看启动的nginx


docker ps


5、访问启动的nginx


在云服务器内使用 curl 测试访问


curl localhost:3344

image.png


5.1、linux开放防火墙端口


firewall-cmd位于firewalld包中

systemctl位于systemd包中


安装防火墙工具:


yum install firewalld systemd -y


常用命令:


# 查看firewall(防火墙)服务状态
systemctl status firewalld
#开启防火墙
systemctl start firewalld
#重启防火墙
service firewalld  restart
#关闭防火墙
service firewalld  stop
#查看防火墙规则
firewall-cmd --list-all     #查看全部信息
firewall-cmd --list-ports     #只看端口信息
#添加防火墙开放端口
firewall-cmd --add-port=8001/tcp --permanent
or
firewall-cmd --zone=public --add-port=8080/tcp --permanent
命令含义:
  --zone          #作用域(public标识公共的)
  --add-port=80/tcp   #添加端口, 格式为:端口/通讯协议
  --permanent       #永久生效,没有此参数重启后失效
# 不要忘记reload!
firewall-cmd --reload


5.2、阿里云服务器需要配置安全组规则


配置完之后就可以在浏览器访问公网ip+3344端口号查看了


5.3、原理


端口暴露,linux端口映射到容器端口

0.0.0.0:3344->80/tcp

image.png


6.进入nginx容器


docker exec -it 0a7ebd6bc291 /bin/bash
root@0a7ebd6bc291:/# ls
bin  boot  dev  docker-entrypoint.d  docker-entrypoint.sh  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@0a7ebd6bc291:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
root@0a7ebd6bc291:/# cd /etc/nginx/
root@0a7ebd6bc291:/etc/nginx# ls
conf.d  fastcgi_params  mime.types  modules  nginx.conf  scgi_params  uwsgi_params
root@0a7ebd6bc291:/etc/nginx# 


问题探索


每次改动nginx配置,都需要进入容器内部修改,十分麻烦,能否在容器外部提供一个映射路径,达到修改配置文件,容器内部就会自动修改?


数据卷技术

nginx.conf配置文件,注意Nginx默认是后台运行的,但Docker需要其在前台运行,否则直接退出容器。配置文件中添加daemon off;关闭后台运行。可以通过Dockerfile配置CMD命令实现

感谢阅读,本篇完,数据卷技术下文继续分享!


目录
相关文章
|
9天前
|
消息中间件 编解码 Docker
Docker部署RabbitMQ消息中间件
【7月更文挑战第4天】Docker部署RabbitMQ消息中间件
42 3
|
7天前
|
存储 Java Docker
使用Docker部署Java应用的最佳实践
使用Docker部署Java应用的最佳实践
|
8天前
|
缓存 负载均衡 应用服务中间件
Nginx如何反向代理后端服务?
【7月更文挑战第7天】
17 1
Nginx如何反向代理后端服务?
|
5天前
|
JavaScript 前端开发 应用服务中间件
Nginx——一个域名下部署多个Vue项目
如何在同一域名下部署第二个Vue项目而不影响现有项目:更新`vue.config.js`,设置`publicPath`为`/screen/`。修改Vue Router的`base`为`screen`。在Nginx配置中添加新location `/screen`,指向第二项目`dist`目录。测试访问`http://<域名>/screen/`。别忘了检查并修复任何遗漏的配置,如数据看板默认设置。
16 2
|
7天前
|
存储 Java Docker
使用Docker部署Java应用的最佳实践
使用Docker部署Java应用的最佳实践
|
7天前
|
存储 移动开发 程序员
Docker部署Dillinger个人文本编辑器
【7月更文挑战第6天】Docker部署Dillinger个人文本编辑器
20 1
|
9天前
|
存储 开发者 Docker
|
5天前
|
Java 应用服务中间件 持续交付
Java面试题:简述Docker等容器化技术的原理及其在Java应用部署中的作用。
Java面试题:简述Docker等容器化技术的原理及其在Java应用部署中的作用。
11 0
|
6天前
|
JSON 测试技术 数据安全/隐私保护
【Docker项目实战篇】Docker部署PDF多功能工具Stirling-PDF
【7月更文挑战第7天】Docker部署PDF多功能工具Stirling-PDF
28 0
|
7天前
|
Ubuntu Linux 数据安全/隐私保护
Linux系统使用Docker部署Cloudreve云盘并实现远程访问
Linux系统使用Docker部署Cloudreve云盘并实现远程访问
13 0