<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                原文: https://blog.csdn.net/weixin_71429850/article/details/127437081 # Docker之compose介紹 前言 使用一個Dockerfile模板文件可以定義一個單獨的應用容器,如果需要定義多個容器就需要服務編排。下面介紹Docker官方產品,Docker Compose。 Dockerfile可以讓用戶管理一個單獨的應用容器,而compose則允許用戶在一個模板(yaml格式)中定義一組相關聯的應用容器(被稱為一個project,即項目) 例如一個web服務再加上后端的數據庫服務容器等。 一、Docker-compose簡介 1、docker-compose基礎概念 docker-compose項目是docker官方的開源項目, 負責實現對docker容器集群的快速編排。 docker-compose將所管理的容器分為三層, 分別是工程(project),服務(service)以及容器(containner) docker-compose運行目錄下的所有文件(docker-compose.yml文件、extends文件或環境變量等)組成一個工程,如無特殊指定,工程名即為當前目錄名。 一個工程當中,可以包含多個服務,每個服務中定義了容器運行的鏡像、參數、依賴。 一個服務中可以包括多個容器實例,docker-compose并沒有解決負載均衡的問題。因此需要借助其他工具實現服務發現及負載均衡,比如consul。 docker-compose的工程配置文件默認為docker-compose.yml。可以通過環境變量COMPOSE_FILE -f 參數自定義配置文件,其自定義多個有依賴關系的服務及每個人服務運行的容器。 2、為什么要使用docker-compose 使用一個Dockerfile模板文件,可以讓用戶很方便的定義一個單獨應用容器。在工作中,經常會碰到需要多個容器相互配合來完成某項任務的情況,例如要實現一個web項目,除了web服務容器本身,往往還需要再加上后端的數據庫服務容器,甚至還包括負載均衡容器等。 compose允許用戶通過一個單獨docker-compose.yml模板文件(YAML格式)來定義一組相關聯的應用容器為一個項目(project) docker-compose項目由pypthon編寫,調用docker服務提供的API來對容器進行管理,因此, 只要所操作的平臺支持docker-API,就可以在其上利用conpose來進行編排管理。 簡單來說:就是來管理多個容器的,定義啟動順序的,合理編排,方便管理。 二、YAML文件格式及編寫注意事項 1、YAML文件格式 YAML是一種標記性語言,它可以很直觀的展示數據序列化格式,可讀性高。 類似于json數據描述語言,但是語法要比json簡單很多。 YAML數據結構通過縮進來表示,連續的項目通過減號來表示,鍵值對用冒號分隔,數組用中括號[ ] 括起來,bash用花括號{ } 括起來。 2、YAML格式的注意事項 不支持制表符tab鍵縮進,只能使用空格縮進 通常開頭縮進2個空格 字符后縮進1個空格,如冒號【:】、逗號【,】、橫杠【-】 用#號表示注釋 如果包含特殊字符用單引號【’ '】引起來作為普通字符,如果用雙引號【“ ”】表示特殊字符本身的意思, 布爾值必須用【“ ”】括起來 YAML區分大小寫 3、YAML數據結構案例 #鍵值對表示 animal:pets #數組:一組按次序排列的列表 - cat - dog - goldfish #布爾值 debug: "true" debug: "false" #yaml實例 languages: #序列的映射 - java - Golang - Python websites: #映射的映射 Baidu: www.baidu.com Wangyi: www.163.com Souhu: www.souhu.com #或者 languages: ["java","Golong","Python"] websites: Baidu: www.baidu.com Wangyi: www.163.com Souhu: www.souhu.com #Json格式 { languages: [ 'Java', 'Golong', 'Python', ], websites: [ Baidu: 'www.baidu.com', Wangyi: 'www.163.com', Souhu: 'www.souhu.com', ] } 三、Docker Compose 配置常用字段 1、Docker Compose配置常用字段 字段 描述 build 指定Dockerfile文件名(要指定的Dockerfile文件需要在build標簽的子級標簽中用dockefile標簽指定) dockerfile 構建鏡像上下文路徑 context 可以是dockerfile路徑,或者時執行git倉庫的url地址 images 指定鏡像(已存在) command 執行命令,會覆蓋容器啟動后默認執行的命令(會覆蓋dockefile中的CMD指令) container_name 指定容器名稱,由于容器名稱是唯一的,如果指定自定義名稱,則無法scale指定容器數量。 deploy 指定部署和運行服務相關配置,只能在swarm模式使用 environment 添加環境變量 networks 加入網絡,引用頂級networks下條目 network-mode 設置容器的網絡模式 ports 暴露容器端口,與-p相同,但是端口不能低于60 volumes 掛載一個宿主機目錄或命令卷到容器,命令卷要在頂級volumes定義卷名稱 volumes_from 從另一個服務或容器掛載卷,可選參數:ro和rw(僅版本‘2’支持) hostname 在容器內設置內核參數 links 連接誒到另一個容器,- 服務名稱[ : ] privileged 用來給容器root權限,注意是不安全的,true restart 重啟策略,定義是否重啟容器1、no,默認策略,在容器退出時不重啟容器2、on-failure,在容器非正常退出時(退出狀態非0),才會重啟容器3、on-failure:3 在容器非正常退出時,重啟容器,最多重啟3次4、always,在容器退出時總是重啟容器,5、unless-stopped,在容器退出時總是重啟容器,但是不考慮在Docker守護進程啟動時就已經停止了的容器。 depends_on 此標簽用于解決容器的依賴,啟動先后問題。如啟動應用容器,需要先啟動數據庫容器。php:depends_on:- apache- mysql 2、Docker-compose常用命令 運行這些命令需要結合docker-compose一起使用。 且必須要在含有docker-compose.yml文件的目錄中才可以使用,不然報錯。 命令 描述 build 重新構建服務 ps 列出容器 up 創建和啟動容器 exec 在容器里面執行命令 scale 指定一個服務容器啟動數量 top 顯示正在運行的容器進程 logs 查看服務容器的輸出 down 刪除容器、網絡、數據卷和鏡像 stop/start/restart 停止/啟動/重啟服務 四、docker-compose安裝 docker-compose是docker的獨立產品,因此需要安裝docker之后再單獨安裝docker compose。 curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose #下載docker-compose文件 mv docker-compose /usr/local/bin #將文件復制到/usr/local/bin環境變量下面 chmod +x /usr/local/bin/docker-compose #給他一個執行權限 五、docker-compose部署nginx服務訪問自定義頁面 1、準備依賴文件 mkdir /root/compose_nginx yum install -y tree vim /root/compose_nginx/docker-compose.yml version: '3' services: nginx: hostname: nginx build: context: ./nginx dockerfile: Dockerfile ports: - 1216:80 - 1217:443 networks: - cluster volumes: - ./wwwroot:/usr/local/nginx/html networks: cluster: [root@docker compose_nginx]# vim /root/compose_nginx/docker-compose.yml [root@docker compose_nginx]# ls docker-compose.yml [root@docker compose_nginx]# mkdir nginx [root@docker compose_nginx]# mkdir wwwroot [root@docker compose_nginx]# ls docker-compose.yml nginx wwwroot [root@docker compose_nginx]# echo "liyong xuexijiugenwanyiyang" > wwwroot/index.html [root@docker compose_nginx]# cat wwwroot/index.html liyong xuexijiugenwanyiyang [root@docker compose_nginx]# cd nginx [root@docker nginx]# ls [root@docker nginx]# rz -E rz waiting to receive. [root@docker nginx]# ls nginx-1.20.2.tar.gz mkdir -p /opt/compose_nginx/nginx cd /opt/compose_nginx/nginx #上傳nginx的包 vim Dockerfile FROM centos:7 RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make &> /dev/null RUN useradd -M -s /sbin/nologin nginx ADD nginx-1.15.9.tar.gz /usr/local/src WORKDIR /usr/local/src/nginx-1.15.9 RUN ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --with-http_stub_status_module &> /dev/null RUN make -j 4 && make install &> /dev/null RUN ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ #ENV PATH /usr/local/nginx/sbin/:PATH EXPOSE 80 EXPOSE 443 RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf CMD ["/usr/local/nginx/sbin/nginx"] 2、編寫配置文件docker-compose.yml文件 cd /opt/compose_nginx vim docker-compose.yml version: '3' #定義編排版本,共3版(1,2,3),1被淘汰,2的話只能單機編排,3的話即可以實現單機編排,也可以實現多機編排。 services: #定義服務 nginx: #定義nginx服務 hostname: nginx #容器的主機名為nginx build: #定義創建容器的過程 //如果有線程的鏡像,直接寫images: context: ./nginx #指定創建容器的目錄位置(存儲dockerfile的目錄) dockerfile: Dockerfile #指定Dockerfile文件 ports: #定義端口 - 1234:80 #暴露端口 - 4321:443 #暴露端口 networks: #指定網絡 ydq: #指定網絡名稱 ipv4_address: 172.100.0.10 #指定ip地址 volumes: #數據卷,掛載目錄 - ./wwwroot:/usr/local/nginx/html #前面宿主機,后面容器 networks: #自定義網絡 ydq: #自定義網絡名稱 driver: bridge #自定義網絡模式 ipam: #網絡管理器 config: #配置參數 - subnet: 172.100.0.0/16 #配置子網網段 //networks的參數ipam即網絡管理,其下還有driver參數即指定使用的網絡模式,以及config配置參數(比如配置子網等) echo "this is ydq" >/opt/compose_nginx/wwwroot/index.html 3、生成鏡像容器 4、查看目錄結構 yum -y install tree &>/dev/null cd /opt/compose_nginx tree docker-compose -f docker-compose.yaml up -d //-f調用文件。-d:開啟守護進程 docker network ls docker ps -a docker-compose ps 5、訪問測試 curl 192.168.100.3:1234 或者 網頁訪問:http:192.168.100.3:1234
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看