<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                三臺主機: - 主機一:172.16.3.52 - 主機一:172.16.3.63 - 主機一:172.16.3.64 1、下載鏡像 ``` docker pull zookeeper:3.4.12 ``` 2、在主機上建立掛載目錄和zookeeper配置文件 ``` mkdir -p /home/data/zookeeper_data/conf \ mkdir -p /home/data/zookeeper_data/data \ cd /home/data/zookeeper_data/conf touch zoo.cfg vi zoo.cfg ``` 三臺主機上的zoo.cfg配置信息如下: ``` clientPort=2181 dataDir=/data dataLogDir=/data/log tickTime=2000 initLimit=5 syncLimit=2 autopurge.snapRetainCount=3 autopurge.purgeInterval=0 maxClientCnxns=60 server.0=172.16.3.52:2888:3888 server.1=172.16.3.63:2888:3888 server.2=172.16.3.64:2888:3888 ``` 3、在主機一上為自己分配server id,命令如下: ``` cd /home/data/zookeeper_data/data echo "0" > myid ``` 在主機二上為自己分配server id,命令如下: ``` cd /home/data/zookeeper_data/data echo "1" > myid ``` 在主機二上為自己分配server id,命令如下: ``` cd /home/data/zookeeper_data/data echo "2" > myid ``` 4、三臺主機依次啟動容器: ``` docker run --restart=always --network host -v /home/data/zookeeper_data/data:/data -v /home/data/zookeeper_data/conf:/conf --name zookeeper -d zookeeper:3.4.12 ``` 命令說明: - --network host: 使用主機上的網絡配置,如果不用這種模式,而用默認的bridge模式,會導致容器跨主機間通信失敗 - -v /data/zookeeper_data/data:/data:主機的數據目錄掛載到容器/data下 - -v /data/zookeeper_data/conf:/conf: 主機的配置目錄掛載到容器的/conf下,容器內的zkServer.sh默認會讀取/conf/zoo.cfg下的配置 都啟動完成后,每臺主機的2181/2888/3888端口都會開放出來了 5、驗證 ``` docker exec -it 容器id /bin/bash ``` ``` docker logs 容器id/容器名稱 ``` 使用windows工具zoolnspector ![image.png](https://upload-images.jianshu.io/upload_images/7100414-76c608a5c205cb91.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 6、排錯 前面兩臺發現沒有問題,后面有臺機器報錯。 權限不足,發現用戶不一樣: ``` [root@bogon conf]# id #不能啟動的主機用戶 uid=0(root) gid=0(root) 組=0(root) 環境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 #正常的主機用戶 uid=0(root) gid=0(root) 組=0(root) ``` 根據后面的信息我查到是因為selinux的原因。 ``` [root@bogon conf]# docker logs -f 19f5e6824a57 chown: /data: Permission denied chown: /data: Permission denied ``` 這是因為開啟了SELinux,解決辦法: ①直接將SELinux的工作模式設置成 disabled,這樣就不會出現策略攔截問題了,但是這樣的話我們的系統就沒有SELinux安全防護了 ②通過 restorecon 或者 chcon 命令來修復我們的文件上下文信息 命令 restorecon 可以用來恢復文件默認的上下文: ``` restorecon -R -v /home/data/zookeeper_data/  ```  //-R 表示遞歸,如果是目錄,則該目錄下的所有子目錄、文件都會得到修復   命令 chcon 可以改變文件的上下文信息,通常我們使用一個參照文件來進行修改: ``` chcon --reference=/var/www/html/index.html /var/www/html/test.html restorecon -v zoo.cfg ```
                  <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>

                              哎呀哎呀视频在线观看