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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] ## 一 命令格式 docker的命令分老版命令格式和新版命令格式,新版命令主要是更直觀了,添加了鏡像[image]和容器[container]來區分命令,簡單舉例對比: 1. 顯示容器命令 老版命令:`docker ps` 新版命令:`docker container ls` 2. 顯示鏡像命令 老版命令: `docker images ` 新版命令: `docker image ls` 3. 刪除鏡像命令 老版命令: `docker rmi centos:latest` 新版命令: `docker image rm centos:latest` ## 二 鏡像相關命令 ### 1.搜索鏡像: `docker search xxx ` 選鏡像的建議:優先考慮官方鏡像,然后是`starts`數量多的鏡像 ### 2.拉取/推送鏡像: 1. 拉取鏡像到本地 `docker image pull centos` 2. 推送centos鏡像到倉庫 ` docker image push centos` ### 3. 鏡像加速器 在`/etc/docker/daemon.json `文件中寫上倉庫和地址,詳見docker部署章節 ### 4. 查看/刪除鏡像 1. 查看鏡像 `docker image ls` 2. 刪除鏡像 `docker image rm centos` ### 5. 導入導出鏡像 1. 導出鏡像 `docker image save centos > docker-centos7.4.tar.gz ` 2. 導入鏡像 `docker image load -i docker-centos7.4.tar.gz ` ## 三 容器相關命令 ### 1. 創建啟動容器 1. 創建容器并啟動 ```sh #創建并啟動容器 docker container run -d -p 80:80 nginx:latest {cmd} #單獨創建容器 docker container create -p 80:80 nginx #單獨啟動容器 docker container start -d 容器ID|容器名 ``` 2. 常規參數 | 參數名 | 功能 | 不帶此參數時 | | --- | --- |--- | | -d | 將容器放在后臺運行 | 前臺運行,會占用終端 | | -p | 進行端口映射 | 有些復雜,單獨說明 | | -it | 分配新終端并進入容器 | 不會進入容器內部 | | --name | 指定容器的名字 | 隨機命名 | | cmd | 覆蓋容器的初始命令 | 使用容器的初始命令 | | --cpus | 限定cpu的權重 | 不限制 | | -memory | 限定內存的大小 | 不限制 | | -h | 指定容器的主機名 | 以容器端ID命名 | ### 2. 停止刪除容器 1. 停止容器 `docker container stop 容器ID|容器名` 2. 殺死容器 `docker container kill 容器ID|容器名` 3. 刪除容器 `docker container rm 容器ID|容器名 ` 4. 批量刪除容器 `docker container rm -f $(docker container ls -a -q) ` ### 3. 查看容器 1. 查看容器 ```sh #查看運行中的容器 docker container ls #查看所有容器 docker container ls -a ``` 2. 查看指定容器詳細信息 以下命令可以查看容器的超詳細信息,以json格式顯示 `docker container inspect 容器ID|容器名` ### 4. 進入容器的方法 進入容器的目的:排錯,調試 1. attach 方法[不常用] `docker container attach [OPTIONS] 容器ID|容器名` 此方法會是進入容器當前終端,會實時打印容器的輸出信息,退出很麻煩[Ctrl+p Ctrl+q ],容易按成[Ctrl+c]導致容器被關閉 2. exec方法 `docker container exec [OPTIONS] 容器ID|容器名 {命令}` 常用`docker exec -it xxx /bin/bash `的方法打開新終端進入容器 ## 四 端口映射 ### 1.docker容器為什么要使用端口映射 默認情況下,容器使用的ip網段是172.17.0.0/16,外界的用戶只能訪問宿主機的10.0.0.0/24網段,無法訪問172.17.0.0/16網段。 而我們運行容器的目的,是希望運行在容器中的服務,能夠被外界訪問,這里就涉及到了外網10.0.0.0/24到容器內網172.17.0.0/16網段的轉換,所以需要做端口映射。 ### 2.docker容器端口映射的方法 docker 的端口映射是通過自動添加一條iptables規則實現的 1. 指定映射端口 | 語法 | 舉例 | 說明 | | --- | --- |--- | | -p hPort:cPort | -p 8800:80 | 主機8800映射容器80 | | 同上,指定多個-p | -p 81:80 -p 443:443 | 一次映射多個端口 | | -p ip:hPort:cPort| -p 10.0.0.11:8800:80 | 指定主機IP | | -p crPort| -p 80 | 隨機端口映射容器80 | | -p ip::crPort| -p 10.0.11::80 | IP指定,主機端口隨機 | | -p hPort:cPort:udp| -p 8800:80:udp | 默認tcp映射,改為UDP | 2. 完全隨機映射 `docker run -P ` 將`dockerfile`創建鏡像時指定的,需要映射出來的內網端口,做外網隨機映射 ## 五 docker資源限額 一個 docker host 上會運行若干容器,每個容器都需要 CPU、內存和 IO 資源,Docker 提供了資源限制的機制避免某個容器因占用太多資源而影響其他容器乃至整個 host 的性能。 ### A. 內存限額 與操作系統類似,容器可使用的內存包括兩部分:物理內存和 swap。 1. `-m`?或?`--memory`:設置內存的使用限額,例如 100M, 2G。 2. `--memory-swap`:設置?**內存+swap**?的使用限額。 3. 默認情況下都為為 -1,即對容器內存和 swap 的使用沒有限制。 4. 如果只指定?`-m`?參數,那么?`--memory-swap`?默認為?`-m`?的兩倍 命令案例: ```sh docker run -m 200M --memory-swap=300M ubuntu ``` 允許該容器最多使用 200M 的內存和 100M 的 swap。 ### A1 動態修改內存限額 動態修改運行中的容器內存限額,需要用到`update`參數,并且不能只修改內存限制,需要同步修改swap限制,否則會報錯,報錯詳見: [參考鏈接](https://my.oschina.net/Kanonpy/blog/2209207) ```sh docker update --memory 2048m --memory-swap -1 gitlab ``` ### B. cpu限額 通過?`-c`?設置的 cpu share 并不是 CPU 資源的絕對數量,而是一個相對的權重值。某個容器最終能分配到的 CPU 資源取決于它的 cpu share 占所有容器 cpu share 總和的比例。 1. 默認所有容器可以平等地使用 host CPU 資源 ,并且沒有限制。 2. 通過?`-c`?或?`--cpu-shares`?設置容器使用 CPU 的權重。 3. 如果不指定,默認值為 1024。 4. **通過 cpu share 可以設置容器使用 CPU 的優先級**。 案例:在 host 中啟動了兩個容器: ```sh docker run --name "container_A" -c 1024 ubuntu docker run --name "container_B" -c 512 ubuntu ``` container\_A 的 cpu share 1024,是 container\_B 的兩倍。當兩個容器都需要 CPU 資源時,container\_A 可以得到的 CPU 是 container\_B 的兩倍。 >這種按權重分配 CPU 只會發生在 CPU 資源緊張的情況下。如果 container\_A 處于空閑狀態,這時,為了充分利用 CPU 資源,container\_B 也可以分配到全部可用的 CPU。 ### C. 磁盤限額 Block IO 指的是磁盤的讀寫,docker 可通過設置權重、限制 bps 和 iops 的方式控制容器讀寫磁盤的帶寬,下面分別討論。 > 目前 Block IO 限額只對 direct IO(不使用文件緩存)有效。 1. block IO 權重 默認情況下,所有容器能平等地讀寫磁盤,可以通過設置?`--blkio-weight`?參數來改變容器 block IO 的優先級。 `--blkio-weight`?與?`--cpu-shares`?類似,設置的是相對權重值,默認為 500。 在下面的例子中,container_A 讀寫磁盤的帶寬是 container_B 的兩倍。 ```sh docker run -it --name container\_A --blkio-weight 600 ubuntu ?? docker run -it --name container\_B --blkio-weight 300 ubuntu ``` 2. 限制 bps 和 iops bps 是 byte per second,每秒讀寫的數據量。 iops 是 io per second,每秒 IO 的次數。 * `--device-read-bps`,限制讀某個設備的 bps。 * `--device-write-bps`,限制寫某個設備的 bps。 * `--device-read-iops`,限制讀某個設備的 iops。 * `--device-write-iops`,限制寫某個設備的 iops。 下面這個例子限制容器寫 /dev/sda 的速率為 30 MB/s ```sh docker run -it --device-write-bps /dev/sda:30MB ubuntu ``` ## 六 數據卷與掛載 ### A.常見的docker數據卷命令 * 創建一個數據卷 `docker volume create xxx` * 查看數據卷列表 `docker volume ls ` * 刪除一個數據卷 `docker volume rm ` * 查看一個數據卷的屬性 `docker volume inspect ` ### B.數據卷與容器卷掛載 1. 綁定卷 ```sh docker run -d -p 80:80 -v /data/test/:/usr/share/nginx/html nginx ``` 2. 容器管理卷 ```sh docker run -d -p 180:80 -v /usr/share/nginx/html nginx docker run -d -p 380:80 -v noah-v1:/usr/share/nginx/html nginx ``` 3. 容器卷 ```sh docker volume create noah-v2 docker run -d -p 801:80 --volumes-from vc_data nginx ```
                  <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>

                              哎呀哎呀视频在线观看