<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 功能強大 支持多語言、二開方便! 廣告
                >[info] docker 基礎使用(幫助命令) Nginx倉庫:?[https://hub.docker.com/_/nginx/](https://hub.docker.com/_/nginx/) PHP倉庫:?[https://hub.docker.com/_/php/](https://hub.docker.com/_/php/) MySQL倉庫:?[https://hub.docker.com/_/mysql/](https://hub.docker.com/_/mysql/) 容器內安裝命令: ``` # 更新apt-get apt-get update # 安裝vim apt-get install -y vim ``` ``` # 查看docker版本 docer version # 查看docker信息(包括鏡像和容器數量) docker info # 查看docker (CPU/內存使用狀態) docker stats # 幫助命令 docker --help ``` >[info] docker 基礎使用(鏡像命令) * **查看所有鏡像:** ``` docker images # 解釋 REPOSITORY 鏡像的倉庫源 TAG 鏡像的標簽 IMAGE ID 鏡像的id CREATED 鏡像創建時間 SIZE 鏡像的大小 ``` * **搜索鏡像:** ``` docker search redis ``` * **拉取鏡像:** ``` # 默認最新 docker pull nginx docker pull nginx:1.19.1 ``` * **刪除鏡像:** ``` 1. 指定刪除(-f 強制刪除)(需要先停止容器 并 刪除容器) docker rmi (image id)或 image name:tag 2. 刪除所有 docker rmi $(docker images -q) ``` * **鏡像歷史:** ``` docker history 鏡像id ``` * **鏡像版本:** ``` docker tag 鏡像id 鏡像名:[tag] 例: docker tag dd6675b5cfea wangqianshun:mysql:1.0 ``` * **鏡像網絡:** ``` docker network --help 例: docker network inspect 鏡像id ``` >[info] docker 基礎使用(容器命令) * **啟動/運行:** ``` docker run -itd --name 容器名稱(自定義) 鏡像名稱:標識 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] ``` * **啟動options說明:** (幫助命令:`docker run --help`) ``` -a stdin: 指定標準輸入輸出內容類型,可選 STDIN/STDOUT/STDERR 三項; -d: 后臺運行容器,并返回容器ID; -i: 以交互模式運行容器,通常與 -t 同時使用; -t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用; --name="nginx-lb": 為容器指定一個名稱; --dns 8.8.8.8: 指定容器使用的DNS服務器,默認和宿主一致; --dns-search example.com: 指定容器DNS搜索域名,默認和宿主一致; -h "mars": 指定容器的hostname; -e username="ritchie": 設置環境變量; --env-file=[]: 從指定文件讀入環境變量; --cpuset="0-2" or --cpuset="0,1,2": 綁定容器到指定CPU運行; -m :設置容器使用內存最大值; --net="bridge": 指定容器的網絡連接類型,支持 bridge/host/none/container: 四種類型; --link=[]: 添加鏈接到另一個容器; --expose=[]: 開放一個端口或一組端口; --volume , -v:綁定一個卷 -P: 隨機端口映射,容器內部端口隨機映射到主機的端口 -p:指定端口映射,格式為:主機(宿主)端口:容器端口 ``` * **示例:** ``` # 運行 nginx 返回完整容器id docker run -itd --name my-nginx -p 80:80 b692a91e4e15 docker run --name nginx-test -p 80:80 -d nginx ``` ![](https://img.kancloud.cn/8f/db/8fdbee84341b47db68beac97f7257179_665x60.png) ![](https://img.kancloud.cn/ab/c9/abc9782fbaf828626bbfe0e35fe4793f_1149x398.png) ``` # 創建一個帶卷的容器(-v 目錄不存在自動創建,并且兩個目錄互通共享) docker run -itd --name my-nginx -v /test/data:/data b692a91e4e15 ``` ![](https://img.kancloud.cn/53/17/53173e8f022fe0ef95dbee72bd127e27_1037x126.png) ![](https://img.kancloud.cn/21/51/2151c3a24bcdcb35a7492eecf72f8dd9_1077x380.png) * **列出運行的容器:** ``` # 列出當前正在運行的容器 docker ps # 列出當前正在運行的容器 + 歷史運行過的容器 docker ps -a # 只顯示容器的id docker ps -q ``` * **刪除容器:** ``` # 刪除容器 docker rm 容器id # 刪除全部容器(先停止再刪除) docker rm $(docker ps -aq) # 強制刪除全部容器 docker rm -f $(docker ps -aq) ``` * **停止/啟動/重啟容器:** ``` # 停止 docker stop 容器id docker kill 容器id # 啟動 docker start 容器id # 重啟 docker restart 容器id ``` >[info] docker 基礎使用(常用命令其他) * **查看容器日志:** ``` docker logs [OPTIONS] 容器id ``` `options`說明: ``` --details:顯示更多的信息 -f:實時跟蹤日志輸出 --since:顯示某個開始時間的所有日志 -t:顯示時間戳 --tail:僅列出最新N條容器日志,默認是all --until:顯示自某個timestamp之前的日志 ``` ``` # 實時查看容器my-nginx的日志輸出(my-nginx為創建時取的名稱) docker logs -f my-nginx ``` ![](https://img.kancloud.cn/07/d1/07d183201f5c0b8f6b2144dd1497288b_888x493.png) * **查看容器進程:** ``` docker top 容器id ``` ![](https://img.kancloud.cn/7a/7c/7a7c114194f3d514b404b79974ba86ae_969x273.png) * **查看鏡像的元數據:** ``` docker inspect 鏡像id ``` ![](https://img.kancloud.cn/2a/02/2a02d3b1bea39d81a3d84bd6528d85a4_837x600.png) >[info] docker 進入容器中的系統 * **進入正在運行的容器:** ``` docker exec [OPTIONS] CONTAINER COMMAND [ARG...] docker exec -it 容器id /bin/sh docker exec -it my-nginx /bin/sh ``` `options` 說明: ``` -d :分離模式: 在后臺運行 -i :即使沒有附加也保持STDIN 打開 -t :分配一個偽終端 docker exec -it 容器id bash docker exec -it 容器名稱 bash 以交互式終端方式進入容器,并執行了 bash 命令,也就是獲得一個可操作的Shell ``` >[info] docker 容器與宿主機文件復制 * **把容器內部的資源復制到宿主機上:** ``` # 命令: docker cp 容器id:容器內資源路徑 宿主機目錄路徑 # 例子: docker cp my-nginx:/docker-entrypoint.sh test.sh ``` ![](https://img.kancloud.cn/39/f5/39f5c8404fe4a1035271fe2ca7120933_668x84.png) * **把容宿主機上的資源復制到容器內部:** ``` # 命: docker cp 文件|目錄 容器id:容器路徑 # 例子: docker cp /root/test.txt 427199e3b5ec:/test.txt ``` ![](https://img.kancloud.cn/9d/f3/9df3c2be3d6da50907bf48a816709b04_697x69.png) >[info] docker 鏡像與容器的遷移處理 **1. 鏡像:save 與 load** ![](https://img.kancloud.cn/a5/4d/a54d4b0823bb2e4911846b602f3a2d07_542x92.png) 1.1 save 打包(將指定鏡像保存成 tar 歸檔文件) ``` docker save [OPTIONS] IMAGE [IMAGE...] options說明: -o :輸出到的文件。 ``` 1.1.1 將本地鏡像導出 ``` # 導入的時候 名稱 和 tag 為 none docker save -o nginx.tar b692a91e4e15 # 直接命名 docker save 鏡像名稱:Tag -o 文件名 # 用 下面這兩種導出 導入的時候 名稱和tag 不會變 docker save nginx > nginx.tar docker save nginx | gzip > nginx-latest.tar.gz ``` ![](https://img.kancloud.cn/ad/6c/ad6c5fc45f91918d07c9228dfba63a27_582x82.png) 1.1.2 刪除 nginx 鏡像進行`load`測試(有映射需先停止) ``` docker rmi -f b692a91e4e15 ``` ![](https://img.kancloud.cn/79/bf/79bfe25ecdec30b38cf6b44a4e48a17b_826x388.png) 1.2 load 加載本地鏡像 ``` docker load -i nginx.tar 或 docker load < nginx.tar ``` ![](https://img.kancloud.cn/aa/e8/aae892eeb5b7b3972c81a12f9f2b0db2_900x229.png) 1.3 修改鏡像名稱 和 tag(其他save方式可不需要這一步) ``` # 命令示例: docker tag 鏡像id 鏡像名稱:tag # 例子: docker tag b692a91e4e15 nginx:v1 ``` ![](https://img.kancloud.cn/c0/b8/c0b8f96c9ca2095cc6a60d1af8edc26f_639x192.png) ***** **2. 容器:export 與 import** docker的流行與它對容器的易分享和易移植密不可分。用戶不僅可以把容器提交到公共服務器上,還可 以將容器導出到本地文件系統中。 同樣我們也可以講導出的 容器重新導入到docker運行環境中。docker的導入和導出分別由import命令 和export命令完成。 ``` docker run -itd --name my-nginx b692a91e4e15 ``` ![](https://img.kancloud.cn/7b/fe/7bfe00d733a85ddd24b03d08173aebdd_1001x121.png) 2.1 export 導出 ``` docker export my-nginx > my-nginx.tar ``` ![](https://img.kancloud.cn/e3/73/e373d336ad079b0471114080cccc6a9a_960x129.png) 2.2 import 導入 ``` docker import my-nginx.tar my-nginx:v1 ``` ![](https://img.kancloud.cn/de/fa/defacd451bacd531531c5da6f2b7df57_1029x123.png) 2.3 接下來我們通過docker run構建容器 ``` # 將import導入的鏡像構建容器 # docker run -itd --name my-nginx my-nginx:v1 docker run -itd --name my-nginx 45406464f6e3 docker run -itd --name my-nginx 45406464f6e3 sh ``` **報錯:** docker: Error response from daemon: No command specified. See 'docker run --help'. `第一次運行報錯是因為docker的bug, 因為沒有一個前臺進程在運行 而加上 bash,sh等命令 就是跟docker一個掛起在前臺的界面` ![](https://img.kancloud.cn/ad/7c/ad7cf1bda49d310e7c8abf06cff65c80_931x364.png) **3. 兩者對比** 相對于文件大小來說,save方式導出的文件比export方式導出的文件大,正是因為save方式保存了鏡像 的歷史和層(layer),使其可以層回滾,即回滾到之前的歷史層,所以save方式導出的文件稍微大一些反 觀export方式,在導出過程中丟失所有的歷史,導致其不可以層回滾,導出的文件會小 一些可以通過 docker history 鏡像名 看到層關系。 ``` docker history 45406464f6e3 ``` ![](https://img.kancloud.cn/ff/de/ffde16d10ca6b96ec178d546240e28e4_923x504.png)
                  <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>

                              哎呀哎呀视频在线观看