Docker中部署nginx服務的方案
容器時相互隔離的,docker
啟動的nginx
是容器內(nèi)的服務,不影響我原先服務器上的nginx
服務,小伙伴們可大膽嘗試??
本篇實在linux環(huán)境下操作的,主要目的是奪人眼目,對使用Docker部署服務嘗鮮,先體會一下Docker的便捷之處。
1、下載nginx鏡像
docker pull nginx
2、查看下載的鏡像
docker ps
3、啟動nginx鏡像
docker run -d --name nginx01 -p 3344:80 nginx(鏡像名或者鏡像id)
4、查看啟動的nginx
docker ps
5、訪問啟動的nginx
在云服務器內(nèi)使用 curl 測試訪問
curl localhost:3344
5.1、linux開放防火墻端口
firewall-cmd
位于firewalld
包中
systemctl
位于systemd
包中
安裝防火墻工具:
yum install firewalld systemd -y
常用命令:
# 查看firewall(防火墻)服務狀態(tài) systemctl status firewalld #開啟防火墻 systemctl start firewalld #重啟防火墻 service firewalld restart #關閉防火墻 service firewalld stop #查看防火墻規(guī)則 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 #添加端口, 格式為:端口/通訊協(xié)議 --permanent #永久生效,沒有此參數(shù)重啟后失效 # 不要忘記reload! firewall-cmd --reload
5.2、阿里云服務器需要配置安全組規(guī)則
配置完之后就可以在瀏覽器訪問公網(wǎng)ip+3344端口號
查看了
5.3、原理
端口 暴露,linux端口映射到容器端口
0.0.0.0:3344->80/tcp
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
配置,都需要進入容器內(nèi)部修改,十分麻煩,能否在容器外部提供一個映射路徑,達到修改配置文件,容器內(nèi)部就會自動修改?
數(shù)據(jù)卷技術
nginx.conf
配置文件,注意Nginx
默認是后臺運行的,但Docker
需要其在前臺運行,否則直接退出容器。配置文件中添加daemon off;
關閉后臺運行??梢酝ㄟ^Dockerfile
配置CMD命令實現(xiàn)
到此這篇關于Docker中部署nginx服務的方案的文章就介紹到這了,更多相關Docker部署nginx內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Docker使用Calico網(wǎng)絡模式配置及問題處理方法
這篇文章主要介紹了Docker使用Calico網(wǎng)絡模式配置及問題處理,設計思想是Calico不使用隧道或者NAT來實現(xiàn)轉(zhuǎn)發(fā),而是巧妙的把所有二三層流量轉(zhuǎn)換成三層流量,并通過host上路由配置完成跨host轉(zhuǎn)發(fā),需要的朋友可以參考下2022-11-11Docker安裝Redis并使用Another?Redis?Desktop?Manager連接的方法
Redis?是一個使用C語言編寫的、開源的(遵守?BSD?協(xié)議)、高性能的、支持網(wǎng)絡、可基于內(nèi)存亦可持久化的日志型、Key-Value的NoSQL數(shù)據(jù)庫,這篇文章主要介紹了Docker安裝Redis并使用Another?Redis?Desktop?Manager連接,需要的朋友可以參考下2022-09-09docker實現(xiàn)導出、導入和數(shù)據(jù)搬遷
本篇文章主要介紹了docker實現(xiàn)導出、導入和數(shù)據(jù)搬遷,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07