<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Dockerfile編寫、容器部署項目nginx負載均衡、私有倉庫搭建

      Dockerfile編寫、容器部署項目nginx負載均衡、私有倉庫搭建

      1. Dockerfile編寫

      Dockerfile是由一系列命令和參數構成的腳本,這些命令應用于基礎鏡像并最終創建一個新的鏡像,用來構建鏡像的

      1. 構建鏡像的三種方式:

      1. 從遠程拉取,docker pull

      2. 通過容器打包成鏡像,壓縮后可以拿到任意位置

      3. 通過 dockerfile 構建鏡像

      2. dockerfile 構建鏡像的作用:

      1、對于開發人員:可以為開發團隊提供一個完全一致的開發環境;

      2、對于測試人員:可以直接拿開發時所構建的鏡像或者通過Dockerfile文件構建一個新的鏡像開始工作了;

      3、對于運維人員:在部署時,可以實現應用的無縫移植。

      3. 常用命令

      命令作用
      FROM image_name:tag 定義了使用哪個基礎鏡像啟動構建的
      MAINTAINER user_name 聲明鏡像的創建者
      ENV key value 設置環境變量 (可以寫多條)
      RUN command 是Dockerfile的核心部分(可以寫多條)寫要執行的命令,如:RUN pip3 install django==1.11.9
      ADD source_dir/file dest_dir/file 將宿主機的文件復制到容器內,如果是一個壓縮文件,將會在復制后自動解壓
      COPY source_dir/file dest_dir/file 和ADD相似,但是如果有壓縮文件并不能解壓
      WORKDIR path_dir 設置工作目錄(如果不寫默認是docker exec進去后當前的路徑下)
      CMD [" "]容器一運行就會執行命令,CMD ["/bin/bash"]

      ADD與COPY的區別:ADD會自動解壓,COPY不會自動解壓

      2. 容器部署項目nginx做負載均衡

      Dockerfile基于python3.6搭建環境:Django,uwsgi

      requirement.txt文件中寫所有的依賴

      1. 在項目目錄下寫dockerfile文件

      EXPOSE 8080  # 對外暴露的哪個端口
      VOLUME ["/home"]  # 映射到容器中的home路徑
      FROM python:3.6
      MAINTAINER Mr.shen
      ADD ./requirement.txt /home/
      RUN pip install -r /home/requirement.txt -i https://pypi.douban.com/simple/
      WORKDIR /home/django_test
      EXPOSE 8080
      VOLUME ["/home"]
      CMD ["uwsgi", "--ini", "/home/django_test/uwsgi.ini"]

      2. 在項目路徑下寫一個 uwsgi.ini 文件

      [uwsgi]
      #也可以使用http
      http=0.0.0.0:8080
      #配置項目路徑,項目的所在目錄
      chdir=/home/django_test
      #配置wsgi接口模塊文件路徑
      wsgi-file=django_test/wsgi.py
      #配置啟動的進程數
      processes=4
      #配置每個進程的線程數
      threads=2
      #配置啟動管理主進程
      master=True
      #配置存放主進程的進程號文件
      pidfile=uwsgi.pid

      3. 傳到Git上

      服務器從Git上拉下來,解壓

      4. 基于dockerfile構建鏡像(進入上傳的Django_test路徑下)

      docker build -t='django1.11.9' .

      5. 運行Django+uwsgi的容器

      docker run -di --name=mydjango1 -v /home/myproject:/home -p 8080:8080 django1.11.9   

      6. 基于nginx鏡像跑起來一個容器,做目錄映射(在宿主機修改nginx配置文件)

      mkdir -p /home/nginx/conf /home/nginx/html /home/nginx/logs
      vim /home/nginx/conf/nginx.conf
      worker_processes  1;
      events {
          worker_connections  1024;
      }
      http {
          include       mime.types;
          default_type  application/octet-stream;
          sendfile        on;
          keepalive_timeout  65;
            upstream    node    {
                  server    101.133.225.166:8080;
                  server    101.133.225.166:8088;
              }
          server {
              listen       80;  # 宿主機暴露的端口
              server_name  localhost;
              location / {
                #負載均衡配置
                proxy_pass http://node;
              }  
              error_page   500 502 503 504  /50x.html;
              location = /50x.html {
                  root   html;
              }
          }
      }

      進入容器并運行容器

      docker run --name nginx -id -p 80:80 -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/html:/etc/nginx/html -v /home/nginx/logs:/var/log/nginx nginx

      訪問http://101.133.225.166/, 會打到不通的docker容器內,即便有一個服務停了,也不會影響項目的運行

      不停服更新,停一半,更新,啟動--在把另一半更新了,因為你django docker容器做了目錄映射---》只需要修改代碼,重啟容器即可(git pull 即可)

      3. 私有倉庫搭建

      公司內部用的鏡像,docker hub上沒有,私服(私有服務器)

      # 操作步驟
      # 1 拉一個registry鏡像  (本質是個什么?web服務(想像成 web項目在里面))
      docker pull registry
      # 2 跑起容器來
      docker run -di --name=registry -p 5000:5000 registry
      # 3 瀏覽器輸入地址(目前是空的)
      http://宿主機ip:5000/v2/_catalog
          
      # 4 vi /etc/docker/daemon.json (文件如果沒有就創建出來),以后docker pull 先從自己配置的這個拉,再去遠程拉
      {"insecure-registries":["宿主機ip:5000"]} 
      
      # 5 重啟docker 服務
      systemctl restart docker
      
      # 6 啟動容器
      docker restart registry
      
      # 7 標記本地的鏡像(可能是dockerfile構建的,也可能是通過容器打包成的)
      docker tag django1.11.9 宿主機ip:5000/mydjango1.11.9
      # docker tag redis 宿主機ip:5000/myredis
      
      # 8 把標記好的本地鏡像,傳到私服
      docker push 宿主機ip:5000/django1.11.9
      #docker push 宿主機ip:5000/myredis
        
      # 9 再訪問這個地址http://宿主機:5000/v2/_catalog 就能看到你上傳的鏡像再里面了
      
      # 10 只要在etc/docker/daemon.json,配置了這個{"insecure-registries":["搭建私服宿主機ip:5000"]} 的所有小伙伴,都可以拉取我上傳的鏡像
      
      別人可以使用 docker pull 我搭建私服宿主機ip:5000/myredis

       

      posted @ 2020-04-29 22:57  Mr沈  閱讀(334)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 天啦噜国产精品亚洲精品| 妺妺窝人体色www婷婷| 无码av永久免费专区麻豆| 国产成人精品区一区二区| 亚洲国产精品综合久久20| 亚洲熟女乱综合一区二区三区| 日韩有码国产精品一区| 国产亚洲人成网站在线观看| 亚洲一二三区精品美妇| 国产乱码精品一区二区三区中文| 亚洲天堂男人的天堂在线| 亚洲精品漫画一二三区 | 亚洲欧美人成人让影院| 蜜臀av黑人亚洲精品| 久久国产一区二区日韩av| 国产精品国产三级国产专| 亚洲精品一区二区妖精| 日日噜噜夜夜狠狠久久蜜桃| 国产亚洲精品久久久久秋霞 | 无码粉嫩虎白一线天在线观看| 亚洲成av一区二区三区| 国产精品中文字幕在线| 国产午夜A理论毛片| 日韩区中文字幕在线观看| 久久中文字幕无码一区二区| 国产成人精品18| 亚洲成在人线在线播放无码| 国产综合精品一区二区三区| 深夜释放自己在线观看| 日韩精品亚洲精品第一页| 蜜臀精品国产高清在线观看| 丰满人妻熟妇乱又仑精品| 亚洲色大成网站WWW国产| 护士张开腿被奷日出白浆| 18成人片黄网站www| 国产99视频精品免费视频76| 国产精品国产三级国产午| 久久久久综合中文字幕| 一本色道婷婷久久欧美| 蜜臀av在线一区二区三区| 在线免费观看毛片av|