Docker | 部署nginx服務

容器時相互隔離的,docker啟動的nginx是容器內的服務,不影響我原先服務器上的nginx服務,小伙伴們可大膽嘗試
本篇實在linux環境下操作的,主要目的是奪人眼目,對使用Docker部署服務嘗鮮 , 先體會一下Docker的便捷之處 。
1、下載nginx鏡像docker pull nginx2、查看下載的鏡像docker ps3、啟動nginx鏡像docker run -d --name nginx01 -p 3344:80 nginx(鏡像名或者鏡像id)
Docker | 部署nginx服務

文章插圖
4、查看啟動的nginxdocker ps5、訪問啟動的nginx在云服務器內使用 curl 測試訪問
curl localhost:3344
Docker | 部署nginx服務

文章插圖
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 --permanentorfirewall-cmd --zone=public --add-port=8080/tcp --permanent命令含義:--zone  #作用域(public標識公共的)--add-port=80/tcp #添加端口, 格式為:端口/通訊協議--permanent #永久生效,沒有此參數重啟后失效# 不要忘記reload!firewall-cmd --reload5.2、阿里云服務器需要配置安全組規則配置完之后就可以在瀏覽器訪問公網ip+3344端口號查看了
5.3、原理【Docker | 部署nginx服務】端口暴露,linux端口映射到容器端口
0.0.0.0:3344->80/tcp
Docker | 部署nginx服務

文章插圖
6.進入nginx容器docker exec -it 0a7ebd6bc291 /bin/bashroot@0a7ebd6bc291:/# lsbin  boot  dev docker-entrypoint.d  docker-entrypoint.sh  etc home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  varroot@0a7ebd6bc291:/# whereis nginxnginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginxroot@0a7ebd6bc291:/# cd /etc/nginx/root@0a7ebd6bc291:/etc/nginx# lsconf.d fastcgi_params mime.types  modules  nginx.conf  scgi_params  uwsgi_paramsroot@0a7ebd6bc291:/etc/nginx#問題探索每次改動nginx配置,都需要進入容器內部修改,十分麻煩,能否在容器外部提供一個映射路徑,達到修改配置文件,容器內部就會自動修改?
數據卷技術
nginx.conf配置文件,注意Nginx默認是后臺運行的,但Docker需要其在前臺運行,否則直接退出容器 。配置文件中添加daemon off;關閉后臺運行 。可以通過Dockerfile配置CMD命令實現
感謝閱讀,本篇完,數據卷技術下文繼續分享!

    推薦閱讀